このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
initialize
説明
ヒント
ほとんどの dlnetwork
オブジェクトは、既定で初期化されています。初期化されていない場合にのみ、dlnetwork
を手動で初期化する必要があります。ネットワークが初期化されているかどうかを確認するには、dlnetwork
オブジェクトの Initialized
プロパティを使用します。
は、ネットワークの入力層で定義された入力サイズに基づいて、netUpdated
= initialize(net
)net
の未設定の学習可能なパラメーターと状態値を初期化します。値が既に格納されている学習可能なパラメーターと状態パラメーターは変更されません。
未設定で空の値が含まれている学習可能なパラメーターと状態パラメーターをもつネットワークは "初期化されていません"。未初期化の dlnetwork
を使用するには、これを事前に初期化しなければなりません。dlnetwork
オブジェクトは、既定で初期パラメーターを使用して構築されるため、初期化が必要ありません。
は、サンプルのネットワーク入力またはネットワーク データ レイアウト オブジェクト netUpdated
= initialize(net
,X1,...,XN
)X1,...,XN
に基づいて、net
の未設定の学習可能なパラメーターと状態値を初期化します。入力層に接続されていない入力がネットワークに存在する場合、この構文を使用します。
例
シンプルなイメージ分類ネットワークを層配列として定義します。
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" {0×0 double}
"conv" "Bias" {0×0 double}
"batchnorm" "Offset" {0×0 double}
"batchnorm" "Scale" {0×0 double}
"fc" "Weights" {0×0 double}
"fc" "Bias" {0×0 double}
関数 initialize
を使用して、ネットワークの学習可能なパラメーターを初期化します。
net = initialize(net);
ネットワークの学習可能なパラメーターを表示します。ネットワークが初期化されたため、値は空でなく、入力層のサイズを使用して推定されたサイズになっています。
net.Learnables
ans=6×3 table
Layer Parameter Value
___________ _________ ___________________
"conv" "Weights" { 5×5×1×20 dlarray}
"conv" "Bias" { 1×1×20 dlarray}
"batchnorm" "Offset" { 1×1×20 dlarray}
"batchnorm" "Scale" { 1×1×20 dlarray}
"fc" "Weights" {10×11520 dlarray}
"fc" "Bias" {10×1 dlarray}
多入力のイメージ分類ネットワークを定義します。
numFilters = 24; net = dlnetwork; 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")]; net = addLayers(net, layersBranch1); net = addLayers(net,layersBranch2); net = connectLayers(net,"groupnorm_branch","add/in2");
層をプロットで可視化します。
figure plot(net)
ネットワークの学習可能なパラメーターを表示します。ネットワークが初期化されていないため、値は空になっています。
net.Learnables
ans=14×3 table
Layer Parameter Value
__________________ _________ ____________
"conv_1" "Weights" {0×0 double}
"conv_1" "Bias" {0×0 double}
"groupnorm_1" "Offset" {0×0 double}
"groupnorm_1" "Scale" {0×0 double}
"conv_2" "Weights" {0×0 double}
"conv_2" "Bias" {0×0 double}
"groupnorm_2" "Offset" {0×0 double}
"groupnorm_2" "Scale" {0×0 double}
"fc" "Weights" {0×0 double}
"fc" "Bias" {0×0 double}
"conv_branch" "Weights" {0×0 double}
"conv_branch" "Bias" {0×0 double}
"groupnorm_branch" "Offset" {0×0 double}
"groupnorm_branch" "Scale" {0×0 double}
ネットワーク入力の名前を表示します。
net.InputNames
ans = 1×2 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" { 3×3×3×144 dlarray}
"conv_1" "Bias" { 1×1×144 dlarray}
"groupnorm_1" "Offset" { 1×1×144 dlarray}
"groupnorm_1" "Scale" { 1×1×144 dlarray}
"conv_2" "Weights" { 3×3×144×24 dlarray}
"conv_2" "Bias" { 1×1×24 dlarray}
"groupnorm_2" "Offset" { 1×1×24 dlarray}
"groupnorm_2" "Scale" { 1×1×24 dlarray}
"conv_branch" "Weights" { 1×1×18×24 dlarray}
"conv_branch" "Bias" { 1×1×24 dlarray}
"groupnorm_branch" "Offset" { 1×1×24 dlarray}
"groupnorm_branch" "Scale" { 1×1×24 dlarray}
"fc" "Weights" {10×24576 dlarray}
"fc" "Bias" {10×1 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.
入力引数
未初期化のネットワーク。dlnetwork
オブジェクトとして指定します。
学習可能なパラメーターと状態パラメーターのサイズと形式を決定するのに使用されるサンプルのネットワーク入力またはデータ レイアウト。それぞれ次のいずれかの値として指定します。
形式を整えた
dlarray
オブジェクト形式を整えた
networkDataLayout
オブジェクト形式を整えていない
dlarray
オブジェクト (R2025a 以降)形式を整えていない
networkDataLayout
オブジェクト (R2025a 以降)
ソフトウェアは、X1,...XN
をネットワーク全体に伝播させて、dlnetwork
オブジェクトの学習可能なパラメーターと状態パラメーターの適切なサイズと形式を決定し、未設定の学習可能なパラメーターと状態パラメーターがあれば、それを初期化します。
形式を整えていないデータを受け取るニューラル ネットワークを作成するには、inputLayer
オブジェクトを使用し、形式を指定しないでください。 (R2025a 以降)
R2025a より前: X1,...XN
は形式を整えた dlarray
オブジェクトまたは networkDataLayout
オブジェクトでなければなりません。
入力ネットワークの InputNames
プロパティで指定された順序と同じ順序でサンプル入力を与えます。
メモ
自動的な初期化では、入力データのサイズと形式の情報のみが使用されます。入力データの値に基づいて初期化を行う場合、学習可能なパラメーターを手動で初期化しなければなりません。
出力引数
初期化済みのネットワーク。初期化済みの dlnetwork
オブジェクトとして返されます。
関数 initialize
は量子化情報を保持しません。入力ネットワークが量子化されたネットワークであった場合でも、出力ネットワークに量子化情報は含まれません。
バージョン履歴
R2021a で導入入力 X1,...,XN
を形式を整えていない dlarray
オブジェクトまたは形式を整えていない networkDataLayout
オブジェクトとして指定して、ニューラル ネットワークを形式を整えていないデータで初期化します。
imageInputLayer
や sequenceInputLayer
などの入力層には、ネットワークがデータの正規化で使用するプロパティが含まれています。そのようなプロパティには、Mean
、StandardDeviation
、Min
、および Max
があります。ソフトウェアは、これらのプロパティを使用して、層の Normalization
プロパティによって定義されたデータ正規化方式を適用します。
R2023b 以降、初期化済みの dlnetwork
を作成するか関数 initialize
を使用してネットワークを初期化すると、入力層の Mean
、StandardDeviation
、Min
、および Max
の各プロパティは、層の作成時にそれらを設定しておらず、正規化方式でそれらが必要となる場合、ソフトウェアによって初期化されます。zscore
のように 2 つのプロパティを使用する正規化方式の場合、層の作成時にどちらのプロパティも設定していない場合にのみ、ソフトウェアはそれらのプロパティを初期化します。
zerocenter
正規化の場合、Mean
が0
に初期化される。zscore
正規化の場合、Mean
が0
に初期化され、StandardDeviation
が1
に初期化される。rescale-symmetric
正規化の場合、Min
が-1
に初期化され、Max
が1
に初期化される。rescale-zero-one
正規化の場合、Min
が0
に初期化され、Max
が1
に初期化される。
既定では、ソフトウェアは学習時に正規化統計量を自動的に計算します。正規化をカスタマイズするには、入力層のプロパティ Mean
、StandardDeviation
、Min
、および Max
を手動で設定します。
以前のリリースでは、正規化方式を使用する入力層が含まれるネットワークを初期化する場合、その正規化方式で必要なプロパティを層の作成時に指定していないと、ソフトウェアでエラーが発生します。
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)