このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
initialize
説明
ヒント
ほとんどの dlnetwork
オブジェクトは、既定で初期化されています。初期化されていない場合にのみ、dlnetwork
を手動で初期化する必要があります。ネットワークが初期化されているかどうかを確認するには、dlnetwork
オブジェクトの Initialized
プロパティを使用します。
は、ネットワークの入力層で定義された入力サイズに基づいて、netUpdated
= initialize(net
)net
の未設定の学習可能なパラメーターと状態値を初期化します。値が既に格納されている学習可能なパラメーターと状態パラメーターは変更されません。
未設定で空の値が含まれている学習可能なパラメーターと状態パラメーターをもつネットワークは "初期化されていません"。未初期化の dlnetwork
を使用するには、これを事前に初期化しなければなりません。dlnetwork
オブジェクトは、既定で初期パラメーターを使用して構築されるため、初期化が必要ありません。
は、サンプルのネットワーク入力またはネットワーク データ レイアウト オブジェクト netUpdated
= initialize(net
,X1,...,Xn
)X1,...,Xn
に基づいて、net
の未設定の学習可能なパラメーターと状態値を初期化します。入力層に接続されていない入力がネットワークに存在する場合、この構文を使用します。
例
入力層を含む dlnetwork
の初期化
シンプルなイメージ分類ネットワークを層配列として定義します。
layers = [
imageInputLayer([28 28 1],Normalization="none")
convolution2dLayer(5,20)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(10)
softmaxLayer];
層グラフを dlnetwork
オブジェクトに変換します。Initialize
オプションを false
に設定して、未初期化の dlnetwork
オブジェクトを作成します。
net = dlnetwork(layers,Initialize=false);
ネットワークの学習可能なパラメーターを表示します。ネットワークが初期化されていないため、値は空になっています。
net.Learnables
ans=6×3 table
Layer Parameter Value
___________ _________ ____________
"conv" "Weights" {0x0 double}
"conv" "Bias" {0x0 double}
"batchnorm" "Offset" {0x0 double}
"batchnorm" "Scale" {0x0 double}
"fc" "Weights" {0x0 double}
"fc" "Bias" {0x0 double}
関数 initialize
を使用して、ネットワークの学習可能なパラメーターを初期化します。
net = initialize(net);
ネットワークの学習可能なパラメーターを表示します。ネットワークが初期化されたため、値は空でなく、入力層のサイズを使用して推定されたサイズになっています。
net.Learnables
ans=6×3 table
Layer Parameter Value
___________ _________ ___________________
"conv" "Weights" { 5x5x1x20 dlarray}
"conv" "Bias" { 1x1x20 dlarray}
"batchnorm" "Offset" { 1x1x20 dlarray}
"batchnorm" "Scale" { 1x1x20 dlarray}
"fc" "Weights" {10x11520 dlarray}
"fc" "Bias" {10x1 dlarray}
入力層を含まない dlnetwork
の初期化
多入力のイメージ分類ネットワークを定義します。
numFilters = 24; layersBranch1 = [ convolution2dLayer(3,6*numFilters,Padding="same",Stride=2) groupNormalizationLayer("all-channels") reluLayer convolution2dLayer(3,numFilters,Padding="same") groupNormalizationLayer("channel-wise") additionLayer(2,Name="add") reluLayer fullyConnectedLayer(10) softmaxLayer]; layersBranch2 = [ convolution2dLayer(1,numFilters,Name="conv_branch") groupNormalizationLayer("all-channels",Name="groupnorm_branch")]; lgraph = layerGraph(layersBranch1); lgraph = addLayers(lgraph,layersBranch2); lgraph = connectLayers(lgraph,"groupnorm_branch","add/in2");
層グラフをプロットで可視化します。
figure plot(lgraph)
層グラフを dlnetwork
オブジェクトに変換します。Initialize
オプションを false
に設定して、未初期化の dlnetwork
オブジェクトを作成します。
net = dlnetwork(lgraph,Initialize=false);
ネットワークの学習可能なパラメーターを表示します。ネットワークが初期化されていないため、値は空になっています。
net.Learnables
ans=14×3 table
Layer Parameter Value
__________________ _________ ____________
"conv_1" "Weights" {0x0 double}
"conv_1" "Bias" {0x0 double}
"groupnorm_1" "Offset" {0x0 double}
"groupnorm_1" "Scale" {0x0 double}
"conv_2" "Weights" {0x0 double}
"conv_2" "Bias" {0x0 double}
"groupnorm_2" "Offset" {0x0 double}
"groupnorm_2" "Scale" {0x0 double}
"fc" "Weights" {0x0 double}
"fc" "Bias" {0x0 double}
"conv_branch" "Weights" {0x0 double}
"conv_branch" "Bias" {0x0 double}
"groupnorm_branch" "Offset" {0x0 double}
"groupnorm_branch" "Scale" {0x0 double}
ネットワーク入力の名前を表示します。
net.InputNames
ans = 1x2 cell
{'conv_1'} {'conv_branch'}
ネットワークへの入力を表すランダムな dlarray
オブジェクトを作成します。ネットワークの主分岐には、3 つのチャネルをもつ 64 行 64 列のサンプル入力を使用します。2 番目の分岐には、18 個のチャネルをもつ 64 行 64 列の入力を使用します。
inputSize = [64 64 3]; inputSizeBranch = [32 32 18]; X1 = dlarray(rand(inputSize),"SSCB"); X2 = dlarray(rand(inputSizeBranch),"SSCB");
関数 initialize
を使用して、ネットワークの学習可能なパラメーターを初期化し、サンプル入力を指定します。ネットワークの InputNames
プロパティに対応する順序で入力を指定します。
net = initialize(net,X1,X2);
ネットワークの学習可能なパラメーターを表示します。ネットワークが初期化されたため、値は空でなく、入力データのサイズを使用して推定されたサイズになっています。
net.Learnables
ans=14×3 table
Layer Parameter Value
__________________ _________ _____________________
"conv_1" "Weights" { 3x3x3x144 dlarray}
"conv_1" "Bias" { 1x1x144 dlarray}
"groupnorm_1" "Offset" { 1x1x144 dlarray}
"groupnorm_1" "Scale" { 1x1x144 dlarray}
"conv_2" "Weights" { 3x3x144x24 dlarray}
"conv_2" "Bias" { 1x1x24 dlarray}
"groupnorm_2" "Offset" { 1x1x24 dlarray}
"groupnorm_2" "Scale" { 1x1x24 dlarray}
"fc" "Weights" { 1x1x18x24 dlarray}
"fc" "Bias" { 1x1x24 dlarray}
"conv_branch" "Weights" { 1x1x24 dlarray}
"conv_branch" "Bias" { 1x1x24 dlarray}
"groupnorm_branch" "Offset" {10x24576 dlarray}
"groupnorm_branch" "Scale" {10x1 dlarray}
ネットワーク データ レイアウト オブジェクトを使用したネットワークの初期化
2 つの未接続の入力をもつ未初期化の dlnetwork
オブジェクトを作成します。
layers = [ convolution2dLayer(5,16,Name="conv") batchNormalizationLayer reluLayer fullyConnectedLayer(50) flattenLayer concatenationLayer(1,2,Name="cat") fullyConnectedLayer(10) softmaxLayer]; net = dlnetwork(layers,Initialize=false);
ネットワークの入力名を表示します。
net.InputNames
ans = 1×2 cell
{'conv'} {'cat/in2'}
入力の入力データを表すネットワーク データ レイアウト オブジェクトを作成します。最初の入力には、28 行 28 列のグレースケール イメージのバッチを指定します。2 番目の入力には、シングルチャネルの特徴データのバッチを指定します。
layout1 = networkDataLayout([28 28 1 NaN],"SSCB"); layout2 = networkDataLayout([1 NaN],"CB");
ネットワーク データ レイアウト オブジェクトを使用してネットワークを初期化します。
net = initialize(net,layout1,layout2)
net = dlnetwork with properties: Layers: [8×1 nnet.cnn.layer.Layer] Connections: [7×2 table] Learnables: [8×3 table] State: [2×3 table] InputNames: {'conv' 'cat/in2'} OutputNames: {'softmax'} Initialized: 1 View summary with summary.
入力引数
net
— 未初期化のネットワーク
dlnetwork
オブジェクト
未初期化のネットワーク。dlnetwork
オブジェクトとして指定します。
X1,...,Xn
— サンプルのネットワーク入力またはデータ レイアウト
書式化された dlarray
オブジェクト | 書式化された networkDataLayout
オブジェクト
サンプルのネットワーク入力またはデータ レイアウト。書式化された dlarray
オブジェクトまたは書式化された networkDataLayout
オブジェクトとして指定します。ソフトウェアは、X1,...Xn
をネットワーク全体に伝播させて、dlnetwork
の学習可能なパラメーターと状態パラメーターの適切なサイズと形式を決定します。
入力ネットワークの InputNames
プロパティで指定された順序と同じ順序でサンプル入力を与えます。
メモ
自動的な初期化では、入力データのサイズと形式の情報のみが使用されます。入力データの値に基づいて初期化を行う場合、学習可能なパラメーターを手動で初期化しなければなりません。
出力引数
netUpdated
— 初期化済みのネットワーク
dlnetwork
オブジェクト
初期化済みのネットワーク。初期化済みの dlnetwork
オブジェクトとして返されます。
関数 initialize
は量子化情報を保持しません。入力ネットワークが量子化されたネットワークであった場合でも、出力ネットワークに量子化情報は含まれません。
バージョン履歴
R2021a で導入
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)