sequenceInputLayer
シーケンス入力層
説明
シーケンス入力層は、ネットワークにシーケンス データを入力します。
作成
プロパティ
シーケンス入力
InputSize
— 入力のサイズ
正の整数 | 正の整数のベクトル
入力のサイズ。正の整数または正の整数のベクトルとして指定します。
ベクトル シーケンス入力の場合、
InputSize
は特徴の数に対応するスカラーです。1 次元イメージ シーケンス入力の場合、
InputSize
は 2 要素から成るベクトル[h c]
です。ここで、h
はイメージの高さ、c
はイメージのチャネル数です。2 次元イメージ シーケンス入力の場合、
InputSize
は 3 要素から成るベクトル[h w c]
です。ここで、h
はイメージの高さ、w
はイメージの幅、c
はイメージのチャネル数です。3 次元イメージ シーケンス入力の場合、
InputSize
は 4 要素から成るベクトル[h w d c]
です。ここで、h
はイメージの高さ、w
はイメージの幅、d
はイメージの深さ、c
はイメージのチャネル数です。
入力データの最小シーケンス長を指定するには、MinLength
プロパティを使用します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
MinLength
— 入力データの最小シーケンス長
1
(既定値) | 正の整数
入力データの最小シーケンス長。正の整数として指定します。ネットワークで学習または予測を行うときに、入力データのタイム ステップが MinLength
未満の場合、ソフトウェアはエラーをスローします。
時間次元のデータをダウンサンプリングするネットワークを作成するときは、ネットワークが学習データと予測用のデータをサポートするように注意しなければなりません。一部の深層学習層では、入力のシーケンス長が最小である必要があります。たとえば、1 次元畳み込み層では、入力に少なくともフィルター サイズと同じ数のタイム ステップが必要です。
シーケンス データの時系列がネットワークを介して伝播することで、シーケンスの長さが変化する可能性があります。たとえば、1 次元畳み込みなどのダウンサンプリング演算では、入力よりも少ないタイム ステップでデータを出力できます。これは、データのシーケンス長が層に必要な最小長よりも短いため、ダウンサンプリング演算によってネットワーク内の後の層がエラーをスローする可能性があることを意味します。
ネットワークの学習や組み立てを行うとき、ソフトウェアは長さ 1 のシーケンスがネットワークを介して伝播できることを自動的にチェックします。一部のネットワークは、長さ 1 のシーケンスをサポートしていない可能性がありますが、シーケンス長がそれより大きいシーケンスを正常に伝播できます。ネットワークが学習データと予想される予測データの伝播をサポートしていることを確認するには、MinLength
プロパティを、データの最小長と予測データの予想最小長の値以下に設定します。
ヒント
畳み込み層とプーリング層がデータのサイズを変更しないようにするには、層の Padding
オプションを "same"
または "causal"
に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Normalization
— データ正規化
'none'
(既定値) | 'zerocenter'
| 'zscore'
| 'rescale-symmetric'
| 'rescale-zero-one'
| 関数ハンドル
データが入力層を通じて順伝播されるたびに適用するデータ正規化。次のいずれかに指定します。
'zerocenter'
—Mean
によって指定された平均を減算します。'zscore'
—Mean
によって指定された平均を減算し、StandardDeviation
で除算します。'rescale-symmetric'
—Min
およびMax
によってそれぞれ指定された最小値と最大値を使用して、範囲 [-1, 1] に入力を再スケーリングします。'rescale-zero-one'
—Min
およびMax
によってそれぞれ指定された最小値と最大値を使用して、範囲 [0, 1] に入力を再スケーリングします。'none'
— 入力データを正規化しません。関数ハンドル — 指定した関数を使用してデータを正規化します。関数は、
Y = func(X)
という形式でなければなりません。ここで、X
は入力データ、出力Y
は正規化データです。
ヒント
既定では、関数 trainNetwork
の使用時に正規化統計量が自動的に計算されます。学習時に時間を節約するため、正規化に必要な統計量を指定し、trainingOptions
で ResetInputNormalization
オプションを 0
(fasle
) に設定します。
パディング値などのすべての入力要素に正規化が適用されます。
データ型: char
| string
| function_handle
NormalizationDimension
— 正規化の次元
'auto'
(既定値) | 'channel'
| 'element'
| 'all'
正規化の次元。次のいずれかに指定します。
'auto'
– 学習オプションがfalse
の場合、いずれかの正規化統計量 (Mean
、StandardDeviation
、Min
、またはMax
) を指定し、統計量に一致する次元に対して正規化を行います。そうでない場合、学習時に統計量を再計算し、チャネル単位の正規化を適用します。'channel'
– チャネル単位の正規化。'element'
– 要素単位の正規化。'all'
– スカラーの統計量を使用してすべての値を正規化します。
データ型: char
| string
Mean
— ゼロ中心正規化および z スコア正規化の平均
[]
(既定値) | 数値配列 | 数値スカラー
ゼロ中心正規化および z スコア正規化の平均。数値配列または空として指定します。
ベクトル シーケンス入力の場合、
Mean
はチャネルごとの平均から成るInputSize
行 1 列のベクトル、数値スカラー、または[]
でなければなりません。2 次元イメージ シーケンス入力の場合、
Mean
はInputSize
と同じサイズの数値配列、チャネルごとの平均から成る 1 x 1 xInputSize(3)
の配列、数値スカラー、または[]
でなければなりません。3 次元イメージ シーケンス入力の場合、
Mean
はInputSize
と同じサイズの数値配列、チャネルごとの平均から成る 1 x 1 x 1 xInputSize(4)
の配列、数値スカラー、または[]
でなければなりません。
Mean
プロパティを指定する場合、Normalization
は 'zerocenter'
または 'zscore'
でなければなりません。Mean
が []
の場合、関数 trainNetwork
は平均を計算し、パディング値を無視します。カスタム学習ループを使用して dlnetwork
オブジェクトに学習させる場合、または関数 assembleNetwork
を使用して学習を行わずにネットワークを組み立てる場合は、Mean
プロパティを数値スカラーまたは数値配列に設定しなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StandardDeviation
— 標準偏差
[]
(既定値) | 数値配列 | 数値スカラー
z スコア正規化に使用される標準偏差。数値配列、数値スカラー、または空として指定します。
ベクトル シーケンス入力の場合、
StandardDeviation
はチャネルごとの標準偏差から成るInputSize
行 1 列のベクトル、数値スカラー、または[]
でなければなりません。2 次元イメージ シーケンス入力の場合、
StandardDeviation
はInputSize
と同じサイズの数値配列、チャネルごとの標準偏差から成る 1 x 1 xInputSize(3)
の配列、数値スカラー、または[]
でなければなりません。3 次元イメージ シーケンス入力の場合、
StandardDeviation
はInputSize
と同じサイズの数値配列、チャネルごとの標準偏差から成る 1 x 1 x 1 xInputSize(4)
の配列、または数値スカラーでなければなりません。
StandardDeviation
プロパティを指定する場合、Normalization
は 'zscore'
でなければなりません。StandardDeviation
が []
の場合、関数 trainNetwork
は平均を計算し、パディング値を無視します。カスタム学習ループを使用して dlnetwork
オブジェクトに学習させる場合、または関数 assembleNetwork
を使用して学習を行わずにネットワークを組み立てる場合は、StandardDeviation
プロパティを数値スカラーまたは数値配列に設定しなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Min
— 再スケーリングの最小値
[]
(既定値) | 数値配列 | 数値スカラー
再スケーリングの最小値。数値配列または空として指定します。
Min
プロパティを指定する場合、Normalization
は 'rescale-symmetric'
または 'rescale-zero-one'
でなければなりません。Min
が []
の場合、関数 trainNetwork
は最小値を計算し、パディング値を無視します。カスタム学習ループを使用して dlnetwork
オブジェクトに学習させる場合、または関数 assembleNetwork
を使用して学習を行わずにネットワークを組み立てる場合は、Min
プロパティを数値スカラーまたは数値配列に設定しなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Max
— 再スケーリングの最大値
[]
(既定値) | 数値配列 | 数値スカラー
再スケーリングの最大値。数値配列または空として指定します。
ベクトル シーケンス入力の場合、
Max
はチャネルごとの平均から成るInputSize
行 1 列のベクトル、または数値スカラーでなければなりません。2 次元イメージ シーケンス入力の場合、
Max
はInputSize
と同じサイズの数値配列、チャネルごとの最大値から成る 1 x 1 xInputSize(3)
の配列、数値スカラー、または[]
でなければなりません。3 次元イメージ シーケンス入力の場合、
Max
はInputSize
と同じサイズの数値配列、チャネルごとの最大値から成る 1 x 1 x 1 xInputSize(4)
の配列、数値スカラー、または[]
でなければなりません。
Max
プロパティを指定する場合、Normalization
は 'rescale-symmetric'
または 'rescale-zero-one'
でなければなりません。Max
が []
の場合、関数 trainNetwork
は最大値を計算し、パディング値を無視します。カスタム学習ループを使用して dlnetwork
オブジェクトに学習させる場合、または関数 assembleNetwork
を使用して学習を行わずにネットワークを組み立てる場合は、Max
プロパティを数値スカラーまたは数値配列に設定しなければなりません。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
SplitComplexInputs
— 入力データを実数部と虚数部に分割するためのフラグ
0
(false
) (既定値) | 1
(true
)
このプロパティは読み取り専用です。
入力データを実数部と虚数部に分割するためのフラグ。次のいずれかの値として指定します。
0
(false
) – 入力データを分割しません。1
(true
) – 入力データを実数部と虚数部に分割します。
SplitComplexInputs
が 1
の場合、層の出力に含まれるチャネル数は、入力データに含まれるチャネル数の 2 倍になります。たとえば、入力データが numChannels
個のチャネルをもつ複素数値の場合、層の出力には 2*numChannels
個のチャネルが含まれます。このとき、1
~ numChannels
番目のチャネルには入力データの実数部が格納され、numChannels+1
~ 2*numChannels
番目のチャネルには入力データの虚数部が格納されます。入力データが実数の場合、numChannels+1
~ 2*numChannels
番目のチャネルはすべて 0 になります。
複素数値のデータをネットワークに入力するには、入力層の SplitComplexInputs
オプションが 1
でなければなりません。
複素数値のデータをもつネットワークに学習させる方法を説明する例については、Train Network with Complex-Valued Dataを参照してください。
層
Name
— 層の名前
''
(既定値) | 文字ベクトル | string スカラー
層の名前。文字ベクトルまたは string スカラーとして指定します。Layer
配列入力の場合、関数 trainNetwork
、assembleNetwork
、layerGraph
、および dlnetwork
は、名前が ''
の層に自動的に名前を割り当てます。
データ型: char
| string
NumInputs
— 入力の数
0 (既定値)
このプロパティは読み取り専用です。
層の入力の数。この層には入力がありません。
データ型: double
InputNames
— 入力名
{}
(既定値)
このプロパティは読み取り専用です。
層の入力名。この層には入力がありません。
データ型: cell
NumOutputs
— 出力の数
1
(既定値)
このプロパティは読み取り専用です。
層の出力の数。この層には単一の出力のみがあります。
データ型: double
OutputNames
— 出力名
{'out'}
(既定値)
このプロパティは読み取り専用です。
層の出力名。この層には単一の出力のみがあります。
データ型: cell
例
シーケンス入力層の作成
名前が 'seq1'
、入力サイズが 12 のシーケンス入力層を作成します。
layer = sequenceInputLayer(12,'Name','seq1')
layer = SequenceInputLayer with properties: Name: 'seq1' InputSize: 12 MinLength: 1 SplitComplexInputs: 0 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'
シーケンス入力層を Layer
配列に含めます。
inputSize = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(inputSize) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer]
layers = 5x1 Layer array with layers: 1 '' Sequence Input Sequence input with 12 dimensions 2 '' LSTM LSTM with 100 hidden units 3 '' Fully Connected 9 fully connected layer 4 '' Softmax softmax 5 '' Classification Output crossentropyex
イメージ シーケンスのシーケンス入力層の作成
名前が 'seq1'
の 224 行 224 列の RGB イメージのシーケンスに対して、シーケンス入力層を作成します。
layer = sequenceInputLayer([224 224 3], 'Name', 'seq1')
layer = SequenceInputLayer with properties: Name: 'seq1' InputSize: [224 224 3] MinLength: 1 SplitComplexInputs: 0 Hyperparameters Normalization: 'none' NormalizationDimension: 'auto'
シーケンス分類についてのネットワークの学習
sequence-to-label 分類について深層学習 LSTM ネットワークに学習をさせます。
[1] および [2] に記載のある Japanese Vowels データ セットを読み込みます。XTrain
は、LPC ケプストラム係数に対応する 12 の特徴をもつ可変長の 270 個のシーケンスが含まれる cell 配列です。Y
は、ラベル 1、2、...、9 の categorical ベクトルです。XTrain
のエントリは行列で、行数が 12 (特徴ごとに 1 行) で、列数が可変 (タイム ステップごとに 1 列) です。
[XTrain,YTrain] = japaneseVowelsTrainData;
最初の時系列をプロットで可視化します。各ラインは特徴に対応しています。
figure plot(XTrain{1}') title("Training Observation 1") numFeatures = size(XTrain{1},1); legend("Feature " + string(1:numFeatures),'Location','northeastoutside')
LSTM ネットワーク アーキテクチャを定義します。入力サイズを 12 (入力データの特徴の数) に指定します。100 個の隠れユニットを含み、シーケンスの最後の要素を出力するように LSTM 層を指定します。最後に、サイズが 9 の全結合層を含めることによって 9 個のクラスを指定し、その後にソフトマックス層と分類層を配置します。
inputSize = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(inputSize) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer]
layers = 5x1 Layer array with layers: 1 '' Sequence Input Sequence input with 12 dimensions 2 '' LSTM LSTM with 100 hidden units 3 '' Fully Connected 9 fully connected layer 4 '' Softmax softmax 5 '' Classification Output crossentropyex
学習オプションを指定します。ソルバーを 'adam'
、'GradientThreshold'
を 1 に指定します。ミニバッチ サイズを 27、エポックの最大回数を 70 に設定します。
ミニバッチが小さく、シーケンスが短いため、学習には CPU が適しています。'ExecutionEnvironment'
を 'cpu'
に設定します。GPU が利用できる場合、GPU で学習を行うには、'ExecutionEnvironment'
を 'auto'
(既定値) に設定します。
maxEpochs = 70; miniBatchSize = 27; options = trainingOptions('adam', ... 'ExecutionEnvironment','cpu', ... 'MaxEpochs',maxEpochs, ... 'MiniBatchSize',miniBatchSize, ... 'GradientThreshold',1, ... 'Verbose',false, ... 'Plots','training-progress');
学習オプションを指定して LSTM ネットワークに学習させます。
net = trainNetwork(XTrain,YTrain,layers,options);
テスト セットを読み込み、シーケンスを話者別に分類します。
[XTest,YTest] = japaneseVowelsTestData;
テスト データを分類します。学習に使用されるサイズと同じミニバッチ サイズを指定します。
YPred = classify(net,XTest,'MiniBatchSize',miniBatchSize);
予測の分類精度を計算します。
acc = sum(YPred == YTest)./numel(YTest)
acc = 0.9541
分類用の LSTM ネットワーク
sequence-to-label 分類用の LSTM ネットワークを作成するには、シーケンス入力層、LSTM 層、全結合層、ソフトマックス層、および分類出力層を含む層配列を作成します。
シーケンス入力層のサイズを入力データの特徴の数に設定します。全結合層のサイズをクラスの数に設定します。シーケンス長を指定する必要はありません。
LSTM 層では、隠れユニットの数と出力モード 'last'
を指定します。
numFeatures = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
sequence-to-label 分類について LSTM ネットワークに学習をさせ、新しいデータを分類する方法の例については、深層学習を使用したシーケンスの分類を参照してください。
sequence-to-sequence 分類用の LSTM ネットワークを作成するには、sequence-to-label 分類の場合と同じアーキテクチャを使用しますが、LSTM 層の出力モードを 'sequence'
に設定します。
numFeatures = 12; numHiddenUnits = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','sequence') fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
回帰用の LSTM ネットワーク
sequence-to-one 回帰用の LSTM ネットワークを作成するには、シーケンス入力層、LSTM 層、全結合層、および回帰出力層を含む層配列を作成します。
シーケンス入力層のサイズを入力データの特徴の数に設定します。全結合層のサイズを応答の数に設定します。シーケンス長を指定する必要はありません。
LSTM 層では、隠れユニットの数と出力モード 'last'
を指定します。
numFeatures = 12; numHiddenUnits = 125; numResponses = 1; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','last') fullyConnectedLayer(numResponses) regressionLayer];
sequence-to-sequence 回帰用の LSTM ネットワークを作成するには、sequence-to-one 回帰の場合と同じアーキテクチャを使用しますが、LSTM 層の出力モードを 'sequence'
に設定します。
numFeatures = 12; numHiddenUnits = 125; numResponses = 1; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits,'OutputMode','sequence') fullyConnectedLayer(numResponses) regressionLayer];
sequence-to-sequence 回帰について LSTM ネットワークに学習をさせて、新しいデータを予測する方法の例については、深層学習を使用した sequence-to-sequence 回帰を参照してください。
深い LSTM ネットワーク
出力モードが 'sequence'
の追加の LSTM 層を LSTM 層の前に挿入すると、LSTM ネットワークを深くできます。過適合を防止するために、LSTM 層の後にドロップアウト層を挿入できます。
sequence-to-label 分類ネットワークでは、最後の LSTM 層の出力モードは 'last'
でなければなりません。
numFeatures = 12; numHiddenUnits1 = 125; numHiddenUnits2 = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits1,'OutputMode','sequence') dropoutLayer(0.2) lstmLayer(numHiddenUnits2,'OutputMode','last') dropoutLayer(0.2) fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
sequence-to-sequence 分類ネットワークでは、最後の LSTM 層の出力モードは 'sequence'
でなければなりません。
numFeatures = 12; numHiddenUnits1 = 125; numHiddenUnits2 = 100; numClasses = 9; layers = [ ... sequenceInputLayer(numFeatures) lstmLayer(numHiddenUnits1,'OutputMode','sequence') dropoutLayer(0.2) lstmLayer(numHiddenUnits2,'OutputMode','sequence') dropoutLayer(0.2) fullyConnectedLayer(numClasses) softmaxLayer classificationLayer];
ビデオ分類用のネットワークの作成
ビデオや医用画像データなどのイメージのシーケンスを含むデータ用の深層学習ネットワークを作成します。
イメージのシーケンスをネットワークに入力するには、シーケンス入力層を使用します。
畳み込み演算を各タイム ステップに個別に適用するには、まずシーケンス折りたたみ層を使用してイメージのシーケンスをイメージの配列に変換します。
これらの演算の実行後にシーケンス構造を復元するには、シーケンス展開層を使用してこのイメージの配列をイメージ シーケンスに変換し直します。
イメージを特徴ベクトルに変換するには、フラット化層を使用します。
その後、ベクトル シーケンスを LSTM 層と BiLSTM 層に入力できます。
ネットワーク アーキテクチャの定義
28 x 28 のグレースケール イメージのシーケンスを 10 個のクラスに分類する分類用の LSTM ネットワークを作成します。
次のネットワーク アーキテクチャを定義します。
入力サイズ
[28 28 1]
のシーケンス入力層。20 個の 5 行 5 列のフィルターを持つ、畳み込み層、バッチ正規化層、および ReLU 層のブロック。
最後のタイム ステップのみを出力する、200 個の隠れユニットを持つ LSTM 層。
サイズが 10 (クラス数) の全結合層と、その後に配置するソフトマックス層と分類層。
畳み込み演算をタイム ステップごとに個別に実行するには、畳み込み層の前にシーケンス折りたたみ層を含めます。LSTM 層はベクトル シーケンス入力を想定しています。シーケンス構造を復元し、畳み込み層の出力を特徴ベクトルのシーケンスに形状変更するには、畳み込み層と LSTM 層の間にシーケンス展開層とフラット化層を挿入します。
inputSize = [28 28 1]; filterSize = 5; numFilters = 20; numHiddenUnits = 200; numClasses = 10; layers = [ ... sequenceInputLayer(inputSize,'Name','input') sequenceFoldingLayer('Name','fold') convolution2dLayer(filterSize,numFilters,'Name','conv') batchNormalizationLayer('Name','bn') reluLayer('Name','relu') sequenceUnfoldingLayer('Name','unfold') flattenLayer('Name','flatten') lstmLayer(numHiddenUnits,'OutputMode','last','Name','lstm') fullyConnectedLayer(numClasses, 'Name','fc') softmaxLayer('Name','softmax') classificationLayer('Name','classification')];
層を層グラフに変換し、シーケンス折りたたみ層の miniBatchSize
出力をシーケンス展開層の対応する入力に結合します。
lgraph = layerGraph(layers); lgraph = connectLayers(lgraph,'fold/miniBatchSize','unfold/miniBatchSize');
関数 plot
を使用して最終的なネットワーク アーキテクチャを表示します。
figure plot(lgraph)
参照
[1] M. Kudo, J. Toyama, and M. Shimbo. "Multidimensional Curve Classification Using Passing-Through Regions." Pattern Recognition Letters. Vol. 20, No. 11–13, pages 1103–1111.
[2] UCI Machine Learning Repository: Japanese Vowels Dataset. https://archive.ics.uci.edu/ml/datasets/Japanese+Vowels
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
ベクトル シーケンス入力の場合、特徴の数はコード生成時に定数でなければなりません。
コード生成では、関数ハンドルを使用して指定される
'Normalization'
はサポートされません。コード生成では、複素数の入力がサポートされておらず、
'SplitComplexInputs'
オプションもサポートされていません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
GPU Coder™ を使用して CUDA® または C++ コードを生成するには、最初に深層ニューラル ネットワークを構築して学習させなければなりません。ネットワークの学習と評価が完了したら、コード ジェネレーターを構成してコードを生成し、NVIDIA® または ARM® GPU プロセッサを使用するプラットフォームに畳み込みニューラル ネットワークを展開できます。詳細については、GPU Coder を使用した深層学習 (GPU Coder)を参照してください。
この層向けに、NVIDIA CUDA 深層ニューラル ネットワーク ライブラリ (cuDNN) または NVIDIA TensorRT™ 高性能推論ライブラリを利用するコードを生成できます。
cuDNN ライブラリはベクトルおよび 2 次元イメージ シーケンスをサポートします。TensorRT ライブラリはベクトル入力シーケンスのみをサポートします。
ベクトル シーケンス入力の場合、特徴の数はコード生成時に定数でなければなりません。
イメージ シーケンス入力の場合、高さ、幅、およびチャネル数は、コード生成時に定数でなければなりません。
コード生成では、関数ハンドルを使用して指定される
'Normalization'
はサポートされません。コード生成では、複素数の入力がサポートされておらず、
'SplitComplexInputs'
オプションもサポートされていません。
バージョン履歴
R2017b で導入R2020a: trainNetwork
は正規化の統計値の計算時にパディング値を無視
R2020a 以降、trainNetwork
は正規化の統計値の計算時にパディング値を無視します。これは、sequenceInputLayer
の Normalization
オプションを使用すると学習結果がデータの操作の影響を受けなくなることを意味します。たとえば、'zerocenter'
正規化を実行すると、学習結果はデータの平均の影響を受けなくなります。
パディングされたシーケンスで学習させた場合、計算された正規化係数は以前のバージョンと異なる場合があるため、異なる結果が生成される可能性があります。
R2019b: sequenceInputLayer
は既定でゼロ中心正規化にチャネル単位の正規化を使用
R2019b 以降では、sequenceInputLayer
は既定でゼロ中心正規化にチャネル単位の正規化を使用します。以前のバージョンでは、この層は要素単位の正規化を使用します。この動作を再現するには、この層の NormalizationDimension
オプションを 'element'
に設定します。
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)