getLearnRateFactor
層の学習可能なパラメーターの学習率係数の取得
構文
説明
は、factor = getLearnRateFactor(layer,parameterName)layer の parameterName という名前の学習可能なパラメーターの学習率係数を返します。
組み込み層の場合、対応するプロパティを使用して学習率係数を直接取得できます。たとえば、convolution2dLayer 層の場合、構文 factor = getLearnRateFactor(layer,'Weights') は factor = layer.WeightLearnRateFactor と等価です。
は、パス factor = getLearnRateFactor(layer,parameterPath)parameterPath で指定されたパラメーターの学習率係数を返します。この構文は、層が networkLayer のとき、またはパラメーターがカスタム層の dlnetwork オブジェクトにあるときに使用します。
は、指定された factor = getLearnRateFactor(net,layerName,parameterName)dlnetwork オブジェクトの layerName という名前の層の parameterName という名前のパラメーターの学習率係数を返します。
は、パス factor = getLearnRateFactor(net,parameterPath)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: [1×1 dlnetwork]
State Parameters
Network: [1×1 dlnetwork]
Show all properties
入れ子ネットワークの層を表示します。
layer.Network.Layers
ans =
7×1 Layer array with layers:
1 'conv_1' 2-D Convolution 64 3×3 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 3×3 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 オブジェクトを作成します。
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 オブジェクト内のネットワーク構成を使用して定義されたカスタム入れ子層の学習可能なパラメーターの学習率係数を設定して取得します。
この例にサポート ファイルとして添付されているカスタム層 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 =
7×1 Layer array with layers:
1 'conv_1' 2-D Convolution 32 3×3×32 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 3×3×32 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
入力引数
入力層。スカラー Layer オブジェクトとして指定します。
パラメーター名。文字ベクトルまたは string スカラーとして指定します。
入れ子層のパラメーターへのパス。string スカラーまたは文字ベクトルとして指定します。networkLayer 内の層、またはそれ自体でニューラル ネットワークを学習可能なパラメーターとして定義するカスタム層を入れ子層として指定できます。
getLearnRateFactor への入力が層である場合、次のようになります。
入れ子層がネットワーク層の中にある場合、パラメーターのパスの形式は
"nestedLayerName/parameterName"となります。ここで、nestedlayerNameはネットワーク層の中にある入れ子層の名前、parameterNameはパラメーターの名前です。入れ子層のレベルが複数ある場合は、nestedLayerName1/.../nestedLayerNameN/parameterNameの形式でパスを指定します。入れ子層が、それ自体でニューラル ネットワークを学習可能なパラメーターとして定義するカスタム層である場合、パラメーターのパスの形式は
"propertyName/layerName/parameterName"となります。ここで、propertyNameはdlnetworkオブジェクトが格納されたプロパティの名前、layerNameはdlnetworkオブジェクト内の層の名前、parameterNameはパラメーターの名前です。入れ子層のレベルが複数ある場合は、"propertyName1/layerName1/.../propertyNameN/layerNameN/parameterName"の形式でパスを指定します。
getLearnRateFactor への入力が 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
ニューラル ネットワーク。dlnetwork オブジェクトとして指定します。
層の名前。string スカラーまたは文字ベクトルとして指定します。
データ型: char | string
出力引数
パラメーターの学習率係数。非負のスカラーとして返されます。
この係数にグローバル学習率が乗算されて、指定されたパラメーターの学習率が決定されます。たとえば、factor が 2 の場合、指定されたパラメーターの学習率は現在のグローバル学習率の 2 倍になります。関数 trainingOptions で指定された設定に基づいて、グローバル学習率が決定されます。
バージョン履歴
R2017b で導入引数 parameterPath を使用して、networkLayer 内にあるパラメーターへのパスを指定します。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)