getL2Factor
層の学習可能なパラメーターの L2 正則化係数の取得
構文
説明
は、factor
= getL2Factor(layer
,parameterName
)layer
の parameterName
という名前のパラメーターの L2 正則化係数を返します。
組み込み層の場合、対応するプロパティを使用して L2 正則化係数を直接取得できます。たとえば、convolution2dLayer
層の場合、構文 factor = getL2Factor(layer,'Weights')
は factor = layer.WeightL2Factor
と等価です。
は、パス factor
= getL2Factor(layer
,parameterPath
)parameterPath
で指定されたパラメーターの L2 正則化係数を返します。この構文は、層が networkLayer
のとき、またはパラメーターがカスタム層の dlnetwork
オブジェクトにあるときに使用します。
は、指定された factor
= getL2Factor(net
,layerName
,parameterName
)dlnetwork
オブジェクトの layerName
という名前の層にある、parameterName
という名前のパラメーターの L2 正則化係数を返します。
は、パス factor
= getL2Factor(net
,parameterPath
)parameterPath
で指定されたパラメーターの L2 正則化係数を返します。この構文は、パラメーターが networkLayer
にあるとき、またはパラメーターがカスタム層の dlnetwork
オブジェクトにあるときに使用します。
例
層の学習可能なパラメーターの 正則化係数を設定および取得します。
この例にサポート ファイルとして添付されているカスタム層 sreluLayer
を含む層配列を作成します。この層にアクセスするには、この例をライブ スクリプトとして開きます。
カスタム層 sreluLayer
を含む層配列を作成します。
layers = [ imageInputLayer([28 28 1]) convolution2dLayer(5,20) batchNormalizationLayer sreluLayer fullyConnectedLayer(10) softmaxLayer];
sreluLayer
の学習可能なパラメーター LeftSlope
の 正則化係数を 2 に設定します。
layers(4) = setL2Factor(layers(4),"LeftSlope",2);
更新された 正則化係数を表示します。
factor = getL2Factor(layers(4),"LeftSlope")
factor = 2
ネットワーク構成を使用して定義されたカスタム入れ子層の学習可能なパラメーターの L2 正則化係数を設定して取得します。
この例にサポート ファイルとして添付されているカスタム層 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
関数 setL2Factor
を使用して、層 'conv_1'
の学習可能なパラメーター 'Weights'
の L2 正則化係数を 2 に設定します。
factor = 2;
layer = setL2Factor(layer,'Network/conv_1/Weights',factor);
関数 getL2Factor
を使用して、更新された L2 正則化係数を取得します。
factor = getL2Factor(layer,'Network/conv_1/Weights')
factor = 2
dlnetwork
オブジェクトの学習可能なパラメーターの L2 正則化係数を設定して取得します。
分類分岐の層を指定し、それをネットワークに追加します。
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);
関数 setL2Factor
を使用して、畳み込み層の 'Weights'
学習可能なパラメーターの L2 正則化係数を 2 に設定します。
factor = 2; net = setL2Factor(net,'conv','Weights',factor);
関数 getL2Factor
を使用して、更新された L2 正則化係数を取得します。
factor = getL2Factor(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);
関数 setL2Factor
を使用して、最初のネットワーク層にある LSTM 層の学習可能なパラメーター InputWeights
の L2 正則化係数を 2 に設定します。
factor = 2;
net = setL2Factor(net,"lstmDropout_1/lstm/InputWeights",factor);
関数 getL2Factor
を使用して、更新された L2 正則化係数を取得します。
factor = getL2Factor(net,"lstmDropout_1/lstm/InputWeights")
factor = 2
dlnetwork
オブジェクト内のネットワーク構成を使用して定義されたカスタム入れ子層の学習可能なパラメーターの L2 正則化係数を設定して取得します。
この例にサポート ファイルとして添付されているカスタム層 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);
dlnetwork
オブジェクトの Learnables
プロパティは、ネットワークの学習可能なパラメーターが格納された table です。この table には、入れ子層のパラメーターが別々の行に含まれています。層 "res1"
の学習可能なパラメーターを表示します。
learnables = dlnet.Learnables;
idx = learnables.Layer == "res1";
learnables(idx,:)
ans=8×3 table
Layer Parameter Value
______ ____________________________ ___________________
"res1" "Network/conv_1/Weights" {3×3×32×32 dlarray}
"res1" "Network/conv_1/Bias" {1×1×32 dlarray}
"res1" "Network/batchnorm_1/Offset" {1×1×32 dlarray}
"res1" "Network/batchnorm_1/Scale" {1×1×32 dlarray}
"res1" "Network/conv_2/Weights" {3×3×32×32 dlarray}
"res1" "Network/conv_2/Bias" {1×1×32 dlarray}
"res1" "Network/batchnorm_2/Offset" {1×1×32 dlarray}
"res1" "Network/batchnorm_2/Scale" {1×1×32 dlarray}
層 "res1"
について、関数 setL2Factor
を使用して、層 'conv_1'
の学習可能なパラメーター 'Weights'
の L2 正則化係数を 2 に設定します。
factor = 2;
dlnet = setL2Factor(dlnet,'res1/Network/conv_1/Weights',factor);
関数 getL2Factor
を使用して、更新された L2 正則化係数を取得します。
factor = getL2Factor(dlnet,'res1/Network/conv_1/Weights')
factor = 2
入力引数
入力層。スカラー Layer
オブジェクトとして指定します。
パラメーター名。文字ベクトルまたは string スカラーとして指定します。
入れ子層のパラメーターへのパス。string スカラーまたは文字ベクトルとして指定します。networkLayer
内の層、またはそれ自体でニューラル ネットワークを学習可能なパラメーターとして定義するカスタム層を入れ子層として指定できます。
getL2Factor
への入力が層である場合、次のようになります。
入れ子層がネットワーク層の中にある場合、パラメーターのパスの形式は
"nestedLayerName/parameterName"
となります。ここで、nestedlayerName
はネットワーク層の中にある入れ子層の名前、parameterName
はパラメーターの名前です。入れ子層のレベルが複数ある場合は、nestedLayerName1/.../nestedLayerNameN/parameterName
の形式でパスを指定します。入れ子層が、それ自体でニューラル ネットワークを学習可能なパラメーターとして定義するカスタム層である場合、パラメーターのパスの形式は
"propertyName/layerName/parameterName"
となります。ここで、propertyName
はdlnetwork
オブジェクトが格納されたプロパティの名前、layerName
はdlnetwork
オブジェクト内の層の名前、parameterName
はパラメーターの名前です。入れ子層のレベルが複数ある場合は、"propertyName1/layerName1/.../propertyNameN/layerNameN/parameterName"
の形式でパスを指定します。
getL2Factor
への入力が 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
出力引数
パラメーターの L2 正則化係数。非負のスカラーとして返されます。
この係数にグローバル L2 正則化係数が乗算されて、指定されたパラメーターの L2 正則化が決定されます。たとえば、factor
が 2
の場合、指定されたパラメーターの L2 正則化は現在のグローバル L2 正則化の 2 倍になります。関数 trainingOptions
で指定された設定に基づいて、グローバル L2 正則化が決定されます。
バージョン履歴
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)