이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
setLearnRateFactor
계층의 학습 가능한 파라미터에 대한 학습률 인자 설정
구문
설명
는 layerUpdated
= setLearnRateFactor(layer
,parameterName
,factor
)layer
에서 이름이 parameterName
인 파라미터에 대한 학습률 인자를 factor
로 설정합니다.
내장 계층의 경우, 상응하는 속성을 사용하여 학습률 인자를 직접 설정할 수 있습니다. 예를 들어, convolution2dLayer
계층의 경우, 구문 layer = setLearnRateFactor(layer,'Weights',factor)
는 layer.WeightLearnRateFactor = factor
와 동일합니다.
는 경로 layerUpdated
= setLearnRateFactor(layer
,parameterPath
,factor
)parameterPath
로 지정된 파라미터에 대한 학습률 인자를 설정합니다. 계층이 networkLayer
이거나 파라미터가 사용자 지정 계층의 dlnetwork
객체에 있는 경우 이 구문을 사용하십시오.
는 지정된 netUpdated
= setLearnRateFactor(net
,layerName
,parameterName
,factor
)dlnetwork
객체에 대해 이름이 layerName
인 계층에서 이름이 parameterName
인 파라미터에 대한 학습률 인자를 설정합니다.
는 경로 netUpdated
= setLearnRateFactor(net
,parameterPath
,factor
)parameterPath
로 지정된 파라미터에 대한 학습률 인자를 설정합니다. 파라미터가 networkLayer
에 있거나 파라미터가 사용자 지정 계층의 dlnetwork
객체에 있는 경우 이 구문을 사용하십시오.
예제
학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져오기
사용자 지정 SReLU 계층의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져옵니다.
이 예제에 지원 파일로 첨부되어 있는 사용자 지정 계층 sreluLayer
를 포함하는 계층 배열을 만듭니다. 이 계층에 액세스하려면 이 예제를 라이브 스크립트로 여십시오.
layers = [ ...
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
batchNormalizationLayer
sreluLayer
fullyConnectedLayer(10)
softmaxLayer];
sreluLayer
의 학습 가능한 파라미터 LeftThreshold
에 대한 학습률 인자를 2로 설정합니다.
layers(4) = setLearnRateFactor(layers(4),"LeftThreshold",2);
업데이트된 학습률 인자를 표시합니다.
factor = getLearnRateFactor(layers(4),"LeftThreshold")
factor = 2
사용자 지정 중첩 계층의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져오기
신경망 구성을 사용하여 중첩 계층의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져옵니다.
이 예제에 지원 파일로 첨부되어 있는 사용자 지정 계층 residualBlockLayer
를 사용하여 잔차 블록 계층을 만듭니다. 이 파일에 액세스하려면 이 예제를 라이브 스크립트로 여십시오.
numFilters = 64; layer = residualBlockLayer(numFilters)
layer = residualBlockLayer with properties: Name: '' Learnable Parameters Network: [1x1 dlnetwork] State Parameters Network: [1x1 dlnetwork] Use properties method to see a list of all properties.
중첩 신경망의 계층을 봅니다.
layer.Network.Layers
ans = 7x1 Layer array with layers: 1 'conv_1' 2-D Convolution 64 3x3 convolutions with stride [1 1] and padding 'same' 2 'batchnorm_1' Batch Normalization Batch normalization 3 'relu_1' ReLU ReLU 4 'conv_2' 2-D Convolution 64 3x3 convolutions with stride [1 1] and padding 'same' 5 'batchnorm_2' Batch Normalization Batch normalization 6 'add' Addition Element-wise addition of 2 inputs 7 'relu_2' ReLU ReLU
setLearnRateFactor
함수를 사용하여, 계층 'conv_1'
의 학습 가능한 파라미터 'Weights'
에 대한 학습률 인자를 2로 설정합니다.
factor = 2;
layer = setLearnRateFactor(layer,'Network/conv_1/Weights',factor);
getLearnRateFactor
함수를 사용하여, 업데이트된 학습률 인자를 가져옵니다.
factor = getLearnRateFactor(layer,'Network/conv_1/Weights')
factor = 2
dlnetwork
의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져오기
dlnetwork
객체의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져옵니다.
dlnetwork
객체를 만듭니다.
net = dlnetwork; layers = [ imageInputLayer([28 28 1],Normalization="none",Name="in") convolution2dLayer(5,20,Name="conv") batchNormalizationLayer(Name="bn") reluLayer(Name="relu") fullyConnectedLayer(10,Name="fc") softmaxLayer(Name="sm")]; net = addLayers(net,layers);
setLearnRateFactor
함수를 사용하여, 컨벌루션 계층의 학습 가능한 파라미터 'Weights'
에 대한 학습률 인자를 2로 설정합니다.
factor = 2;
net = setLearnRateFactor(net,'conv',Weights=factor);
getLearnRateFactor
함수를 사용하여, 업데이트된 학습률 인자를 가져옵니다.
factor = getLearnRateFactor(net,'conv',"Weights")
factor = 2
중첩 계층의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져오기
은닉 유닛이 100개인 lstmLayer
와 드롭아웃 확률이 0.2인 dropoutLayer
를 포함하는 계층으로 구성된 배열을 만듭니다.
layers = [lstmLayer(100,OutputMode="sequence",Name="lstm") dropoutLayer(0.2,Name="dropout")];
이들 계층을 포함하는 신경망 계층을 만듭니다.
lstmDropoutLayer = networkLayer(layers,Name="lstmDropout");
신경망 계층을 사용하여 신경망을 구축합니다.
layers = [sequenceInputLayer(3) lstmDropoutLayer lstmDropoutLayer fullyConnectedLayer(10) softmaxLayer];
dlnetwork
객체를 만듭니다. trainnet
함수를 사용하여 신경망을 훈련시켜 dlnetwork
객체를 만들 수도 있습니다.
net = dlnetwork(layers);
setLearnRateFactor
함수를 사용하여 첫 번째 신경망 계층에 있는 LSTM 계층의 학습 가능한 파라미터 InputWeights
에 대한 학습률 인자를 2로 설정합니다.
factor = 2;
net = setLearnRateFactor(net,"lstmDropout_1/lstm/InputWeights",factor);
getLearnRateFactor
함수를 사용하여, 업데이트된 학습률 인자를 가져옵니다.
factor = getLearnRateFactor(net,"lstmDropout_1/lstm/InputWeights")
factor = 2
사용자 지정 중첩 dlnetwork
의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져오기
dlnetwork
객체에서 신경망 구성을 사용하여 정의된 사용자 지정 중첩 계층의 학습 가능한 파라미터에 대한 학습률 인자를 설정하고 가져옵니다.
이 예제에 지원 파일로 첨부되어 있는 사용자 지정 계층 residualBlockLayer
를 포함하는 dlnetwork
객체를 만듭니다. 이 파일에 액세스하려면 이 예제를 라이브 스크립트로 여십시오.
inputSize = [224 224 3]; numFilters = 32; numClasses = 5; layers = [ imageInputLayer(inputSize,'Normalization','none','Name','in') convolution2dLayer(7,numFilters,'Stride',2,'Padding','same','Name','conv') groupNormalizationLayer('all-channels','Name','gn') reluLayer('Name','relu') maxPooling2dLayer(3,'Stride',2,'Name','max') residualBlockLayer(numFilters,'Name','res1') residualBlockLayer(numFilters,'Name','res2') residualBlockLayer(2*numFilters,'Stride',2,'IncludeSkipConvolution',true,'Name','res3') residualBlockLayer(2*numFilters,'Name','res4') residualBlockLayer(4*numFilters,'Stride',2,'IncludeSkipConvolution',true,'Name','res5') residualBlockLayer(4*numFilters,'Name','res6') globalAveragePooling2dLayer('Name','gap') fullyConnectedLayer(numClasses,'Name','fc') softmaxLayer('Name','sm')]; dlnet = dlnetwork(layers);
계층 'res1'
에 있는 중첩 신경망의 계층을 봅니다.
dlnet.Layers(6).Network.Layers
ans = 7x1 Layer array with layers: 1 'conv_1' 2-D Convolution 32 3x3x32 convolutions with stride [1 1] and padding 'same' 2 'batchnorm_1' Batch Normalization Batch normalization with 32 channels 3 'relu_1' ReLU ReLU 4 'conv_2' 2-D Convolution 32 3x3x32 convolutions with stride [1 1] and padding 'same' 5 'batchnorm_2' Batch Normalization Batch normalization with 32 channels 6 'add' Addition Element-wise addition of 2 inputs 7 'relu_2' ReLU ReLU
setLearnRateFactor
함수를 사용하여, 계층 'conv_1'
의 학습 가능한 파라미터 'Weights'
에 대한 학습률 인자를 2로 설정합니다.
factor = 2;
dlnet = setLearnRateFactor(dlnet,'res1/Network/conv_1/Weights',factor);
getLearnRateFactor
함수를 사용하여, 업데이트된 학습률 인자를 가져옵니다.
factor = getLearnRateFactor(dlnet,'res1/Network/conv_1/Weights')
factor = 2
학습 가능한 파라미터 고정하기
사전 훈련된 신경망을 불러옵니다.
net = imagePretrainedNetwork;
dlnetwork
객체의 Learnables
속성은 신경망의 학습 가능한 파라미터를 포함하는 테이블입니다. 테이블은 중첩 계층의 파라미터를 개별 행에 포함합니다. learnables 테이블의 처음 몇 개 행을 봅니다.
learnables = net.Learnables; head(learnables)
Layer Parameter Value __________________ _________ ___________________ "conv1" "Weights" {3x3x3x64 dlarray} "conv1" "Bias" {1x1x64 dlarray} "fire2-squeeze1x1" "Weights" {1x1x64x16 dlarray} "fire2-squeeze1x1" "Bias" {1x1x16 dlarray} "fire2-expand1x1" "Weights" {1x1x16x64 dlarray} "fire2-expand1x1" "Bias" {1x1x64 dlarray} "fire2-expand3x3" "Weights" {3x3x16x64 dlarray} "fire2-expand3x3" "Bias" {1x1x64 dlarray}
신경망의 학습 가능한 파라미터를 고정하려면 학습 가능한 파라미터를 루프를 사용해 순환하고 setLearnRateFactor
함수를 사용하여 학습률을 0으로 설정합니다.
factor = 0; numLearnables = size(learnables,1); for i = 1:numLearnables layerName = learnables.Layer(i); parameterName = learnables.Parameter(i); net = setLearnRateFactor(net,layerName,parameterName,factor); end
훈련 시 업데이트된 학습률 인자를 사용하려면 사용자 지정 훈련 루프에서 dlnetwork 객체를 업데이트 함수에 전달해야 합니다. 예를 들어, 다음 명령을 사용합니다.
[net,velocity] = sgdmupdate(net,gradients,velocity);
입력 인수
layer
— 입력 계층
스칼라 Layer
객체
입력 계층으로, 스칼라 Layer
객체로 지정됩니다.
parameterName
— 파라미터 이름
문자형 벡터 | string형 스칼라
파라미터 이름으로, 문자형 벡터 또는 string형 스칼라로 지정됩니다.
factor
— 학습률 인자
음이 아닌 스칼라
파라미터에 대한 학습률 인자로, 음이 아닌 스칼라로 지정됩니다.
이 인자에 전역 학습률을 곱하여 지정된 파라미터에 대한 학습률이 결정됩니다. 예를 들어, factor
가 2인 경우, 지정된 파라미터에 대한 학습률은 현재 전역 학습률의 2배입니다. 소프트웨어는 trainingOptions
함수로 지정된 설정을 기준으로 전역 학습률을 결정합니다.
예: 2
parameterPath
— 중첩 계층의 파라미터 경로
string형 스칼라 | 문자형 벡터
중첩 계층의 파라미터 경로로, string형 스칼라 또는 문자형 벡터로 지정됩니다. 중첩 계층은 networkLayer
내의 계층이거나 그 자체가 신경망을 학습 가능한 파라미터로 정의하는 사용자 지정 계층일 수 있습니다.
setLearnRateFactor
에 대한 입력값이 계층인 경우,
중첩 계층이 신경망 계층에 내에 있으면, 파라미터 경로의 형식은
"nestedLayerName/parameterName"
입니다. 여기서nestedlayerName
은 신경망 계층 내의 중첩 계층의 이름이고parameterName
은 파라미터의 이름입니다. 중첩 계층의 수준이 여러 개이면nestedLayerName1/.../nestedLayerNameN/parameterName
형식을 사용하여 경로를 지정하십시오.중첩 계층이 그 자체가 신경망을 학습 가능한 파라미터로 정의하는 사용자 지정 계층이면, 파라미터 경로의 형식은
"propertyName/layerName/parameterName"
입니다. 여기서propertyName
은dlnetwork
객체를 포함하는 속성의 이름이고layerName
은dlnetwork
객체에 있는 계층의 이름이며parameterName
은 파라미터의 이름입니다. 중첩 계층의 수준이 여러 개이면"propertyName1/layerName1/.../propertyNameN/layerNameN/parameterName"
형식을 사용하여 경로를 지정하십시오.
setLearnRateFactor
에 대한 입력값이 dlnetwork
객체이고 원하는 파라미터가 중첩 계층 내에 있는 경우,
중첩 계층이 신경망 계층 내에 있으면, 파라미터 경로의 형식은
"networkLayerName/nestedLayerName/parameterName"
입니다. 여기서networkLayerName
은 신경망 계층의 이름이고nestedlayerName
은 신경망 계층 내의 중첩 계층의 이름이며parameterName
은 파라미터의 이름입니다. 중첩 계층의 수준이 여러 개이면"networkLayerName1/.../networkLayerNameN/nestedLayerName/parameterName"
형식을 사용하여 경로를 지정하십시오.중첩 계층이 그 자체가 신경망을 학습 가능한 파라미터로 정의하는 사용자 지정 계층이면, 파라미터 경로의 형식은
"customLayerName1/propertyName/layerName/parameterName"
입니다. 여기서layerName1
은 입력dlnetwork
객체에 있는 계층의 이름이고propertyName
은dlnetwork
객체를 포함하는 계층의 속성이고layerName
은dlnetwork
객체에 있는 계층의 이름이며parameterName
은 파라미터의 이름입니다. 중첩 계층의 수준이 여러 개이면"customLayerName1/propertyName1/.../customLayerNameN/propertyNameN/layerName/parameterName"
형식을 사용하여 경로를 지정하십시오.
데이터형: char
| string
net
— 신경망
dlnetwork
객체
신경망으로, dlnetwork
객체로 지정됩니다.
layerName
— 계층 이름
string형 스칼라 | 문자형 벡터
계층 이름으로, string형 스칼라 또는 문자형 벡터로 지정됩니다.
데이터형: char
| string
출력 인수
버전 내역
R2017b에 개발됨R2024a: 신경망 계층에 파라미터 경로 지정
parameterPath
인수를 사용하여 networkLayer
에 파라미터에 대한 경로를 지정합니다.
참고 항목
setL2Factor
| getLearnRateFactor
| getL2Factor
| trainnet
| trainingOptions
| dlnetwork
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)