このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
setL2Factor
層の学習可能なパラメーターの L2 正則化係数の設定
構文
説明
は、layerUpdated
= setL2Factor(layer
,parameterName
,factor
)layer
の parameterName
という名前のパラメーターの L2 正則化係数を factor
に設定します。
組み込み層の場合、対応するプロパティを使用して L2 正則化係数を直接設定できます。たとえば、convolution2dLayer
層の場合、構文 layer = setL2Factor(layer,'Weights',factor)
は layer.WeightL2Factor = factor
と等価です。
は、パス layerUpdated
= setL2Factor(layer
,parameterPath
,factor
)parameterPath
で指定されたパラメーターの L2 正則化係数を設定します。この構文は、層が networkLayer
のとき、またはパラメーターがカスタム層の dlnetwork
オブジェクトにあるときに使用します。
は、指定された netUpdated
= setL2Factor(net
,layerName
,parameterName
,factor
)dlnetwork
オブジェクトの layerName
という名前の層にある、parameterName
という名前のパラメーターの L2 正則化係数を設定します。
は、パス netUpdated
= setL2Factor(net
,parameterPath
,factor
)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 正則化係数の設定および取得
ネットワーク構成を使用して定義されたカスタム入れ子層の学習可能なパラメーターの L2 正則化係数を設定して取得します。
この例にサポート ファイルとして添付されているカスタム層 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
関数 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 正則化係数の設定および取得
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
入れ子層の学習可能なパラメーターの L2 正則化係数の設定および取得
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 正則化係数の設定および取得
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" {3x3x32x32 dlarray}
"res1" "Network/conv_1/Bias" {1x1x32 dlarray}
"res1" "Network/batchnorm_1/Offset" {1x1x32 dlarray}
"res1" "Network/batchnorm_1/Scale" {1x1x32 dlarray}
"res1" "Network/conv_2/Weights" {3x3x32x32 dlarray}
"res1" "Network/conv_2/Bias" {1x1x32 dlarray}
"res1" "Network/batchnorm_2/Offset" {1x1x32 dlarray}
"res1" "Network/batchnorm_2/Scale" {1x1x32 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
— 入力層
スカラー Layer
オブジェクト
入力層。スカラー Layer
オブジェクトとして指定します。
parameterName
— パラメーター名
文字ベクトル | string スカラー
パラメーター名。文字ベクトルまたは string スカラーとして指定します。
factor
— L2 正則化係数
非負のスカラー
パラメーターの L2 正則化係数。非負のスカラーとして指定します。
この係数にグローバル L2 正則化係数が乗算されて、指定されたパラメーターの L2 正則化係数が決定されます。たとえば、factor
が 2
の場合、指定されたパラメーターの L2 正則化はグローバル L2 正則化係数の 2 倍になります。グローバル L2 正則化係数は、関数 trainingOptions
を使用して指定できます。
例: 2
parameterPath
— 入れ子層のパラメーターへのパス
string スカラー | 文字ベクトル
入れ子層のパラメーターへのパス。string スカラーまたは文字ベクトルとして指定します。networkLayer
内の層、またはそれ自体でニューラル ネットワークを学習可能なパラメーターとして定義するカスタム層を入れ子層として指定できます。
setL2Factor
への入力が層である場合、次のようになります。
入れ子層がネットワーク層の中にある場合、パラメーターのパスの形式は
"nestedLayerName/parameterName"
となります。ここで、nestedlayerName
はネットワーク層の中にある入れ子層の名前、parameterName
はパラメーターの名前です。入れ子層のレベルが複数ある場合は、nestedLayerName1/.../nestedLayerNameN/parameterName
の形式でパスを指定します。入れ子層が、それ自体でニューラル ネットワークを学習可能なパラメーターとして定義するカスタム層である場合、パラメーターのパスの形式は
"propertyName/layerName/parameterName"
となります。ここで、propertyName
はdlnetwork
オブジェクトが格納されたプロパティの名前、layerName
はdlnetwork
オブジェクト内の層の名前、parameterName
はパラメーターの名前です。入れ子層のレベルが複数ある場合は、"propertyName1/layerName1/.../propertyNameN/layerNameN/parameterName"
の形式でパスを指定します。
setL2Factor
への入力が 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
内にあるパラメーターへのパスを指定します。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは 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)