このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
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 正則化係数を設定します。この構文は、パラメーターがカスタム層の dlnetwork
オブジェクトにあるときに使用します。
は、指定された netUpdated
= setL2Factor(net
,layerName
,parameterName
,factor
)dlnetwork
オブジェクトの layerName
という名前の層の、parameterName
という名前のパラメーターの L2 正則化係数を設定します。
は、パス netUpdated
= setL2Factor(net
,parameterPath
,factor
)parameterPath
で指定されたパラメーターの L2 正則化係数を設定します。この構文は、パラメーターが入れ子の層にあるときに使用します。
例
学習可能なパラメーターの L2 正則化係数の設定および取得
層の学習可能なパラメーターの L2 正則化係数を設定および取得します。
この例にサポート ファイルとして添付されているカスタム層 preluLayer
を含む層配列を作成します。この層にアクセスするには、この例をライブ スクリプトとして開きます。
カスタム層 preluLayer
を含む層配列を作成します。
layers = [ ...
imageInputLayer([28 28 1])
convolution2dLayer(5,20)
batchNormalizationLayer
preluLayer
fullyConnectedLayer(10)
softmaxLayer
classificationLayer];
preluLayer
の学習可能パラメーター Alpha
の L2 正則化係数を 2 に設定します。
layers(4) = setL2Factor(layers(4),"Alpha",2);
更新された L2 正則化係数を表示します。
factor = getL2Factor(layers(4),"Alpha")
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] Show 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 正則化係数を設定して取得します。
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')]; lgraph = layerGraph(layers); dlnet = dlnetwork(lgraph);
関数 setL2Factor
を使用して、畳み込み層の 'Weights'
学習可能パラメーターの L2 正則化係数を 2 に設定します。
factor = 2; dlnet = setL2Factor(dlnet,'conv','Weights',factor);
関数 getL2Factor
を使用して、更新された L2 正則化係数を取得します。
factor = getL2Factor(dlnet,'conv','Weights')
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 スカラーまたは文字ベクトルとして指定します。入れ子層は、それ自体が層グラフを学習可能なパラメーターとして定義するカスタム層です。
setL2Factor
への入力が入れ子層である場合、パラメーター パスは "propertyName/layerName/parameterName"
の形式になります。ここで、以下のようになります。
propertyName
は、dlnetwork
オブジェクトが格納されたプロパティの名前layerName
は、dlnetwork
オブジェクト内の層の名前parameterName
は、パラメーターの名前
入れ子層のレベルが複数ある場合は、"propertyName1/layerName1/.../propertyNameN/layerNameN/parameterName"
の形式で各レベルを指定します。ここで、propertyName1
と layerName1
は関数 setL2Factor
に対する入力の層に対応し、後続の部分はさらに深層のレベルに対応します。
例: setL2Factor
に対する層入力では、パス "Network/conv1/Weights"
が、layer.Network
によって指定された dlnetwork
オブジェクト内の "conv1"
という名前の層の "Weights"
パラメーターを指定します。
setL2Factor
に対する入力が dlnetwork
オブジェクトであり、目的のパラメーターが入れ子層の中にある場合、パラメーター パスは "layerName1/propertyName/layerName/parameterName"
の形式になります。ここで、以下のようになります。
layerName1
は、入力dlnetwork
オブジェクト内の層の名前propertyName
は、dlnetwork
オブジェクトが格納された層のプロパティlayerName
は、dlnetwork
オブジェクト内の層の名前parameterName
は、パラメーターの名前
入れ子層のレベルが複数ある場合は、"layerName1/propertyName1/.../layerNameN/propertyNameN/layerName/parameterName"
の形式で各レベルを指定します。ここで、layerName1
と propertyName1
は関数 setL2Factor
に対する入力の層に対応し、後続の部分はさらに深層のレベルに対応します。
例: setL2Factor
に対する dlnetwork
入力では、パス "res1/Network/conv1/Weights"
が、layer.Network
によって指定された dlnetwork
オブジェクト内の "conv1"
という名前の層の "Weights"
パラメーターを指定します。ここで layer
は入力ネットワーク net
の "res1"
という名前の層です。
データ型: char
| string
net
— ニューラル ネットワーク
dlnetwork
オブジェクト
ニューラル ネットワーク。dlnetwork
オブジェクトとして指定します。
layerName
— 層の名前
string スカラー | 文字ベクトル
層の名前。string スカラーまたは文字ベクトルとして指定します。
データ型: char
| string
出力引数
バージョン履歴
R2017b で導入
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)