このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
imageInputLayer
イメージ入力層
説明
イメージ入力層は、ニューラル ネットワークに 2 次元イメージを入力し、データ正規化を適用します。
3 次元イメージ入力の場合、image3dInputLayer
を使用します。
作成
説明
は、1 つ以上の名前と値の引数を使用して、オプションのプロパティを設定します。layer
= imageInputLayer(inputSize
,Name=Value
)
入力引数
入力データのサイズ。整数の行ベクトル [h w c]
として指定します。ここで、h
、w
、および c
はそれぞれ高さ、幅、およびチャネル数に対応します。
グレースケール イメージの場合、
c
が1
に等しいベクトルを指定します。RGB イメージの場合、
c
が3
に等しいベクトルを指定します。マルチスペクトル イメージまたはハイパースペクトル イメージの場合、
c
がチャネル数に等しいベクトルを指定します。
3 次元イメージ入力またはボリューム入力の場合、image3dInputLayer
を使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: imageInputLayer([28 28 3],Name="input")
は、入力サイズが [28 28 3]
で 'input'
という名前をもつイメージ入力層を作成します。
データが入力層を通じて順伝播されるたびに適用するデータ正規化。次のいずれかに指定します。
"zerocenter"
—Mean
によって指定された平均を減算します。"zscore"
—Mean
によって指定された平均を減算し、StandardDeviation
で除算します。"rescale-symmetric"
—Min
およびMax
によってそれぞれ指定された最小値と最大値を使用して、範囲 [-1, 1] に入力を再スケーリングします。"rescale-zero-one"
—Min
およびMax
によってそれぞれ指定された最小値と最大値を使用して、範囲 [0, 1] に入力を再スケーリングします。"none"
— 入力データを正規化しません。関数ハンドル — 指定した関数を使用してデータを正規化します。関数は、
Y = f(X)
という形式でなければなりません。ここで、X
は入力データ、出力Y
は正規化データです。
入力データが複素数値で、SplitComplexInputs
オプションが 0
(false
) の場合、Normalization
オプションは、"zerocenter"
、"zscore"
、"none"
、または関数ハンドルでなければなりません。 (R2024a 以降)
R2024a より前: 複素数値のデータをネットワークに入力するには、SplitComplexInputs
オプションが 1
(true
) でなければなりません。
ヒント
既定では、ソフトウェアは、関数 trainnet
の使用時に正規化統計量を自動的に計算します。学習時に時間を節約するため、正規化に必要な統計量を指定し、trainingOptions
で ResetInputNormalization
オプションを 0
(false
) に設定します。
ImageInputLayer
オブジェクトは、Normalization
プロパティを文字ベクトルまたは関数ハンドルとして格納します。
正規化の次元。次のいずれかに指定します。
"auto"
–ResetInputNormalization
学習オプションが0
(false
) の場合、いずれかの正規化統計量 (Mean
、StandardDeviation
、Min
、またはMax
) を指定し、統計量に一致する次元に対して正規化を行います。そうでない場合、学習時に統計量を再計算し、チャネル単位の正規化を適用します。"channel"
– チャネル単位の正規化。"element"
– 要素単位の正規化。"all"
– スカラーの統計量を使用してすべての値を正規化します。
ImageInputLayer
オブジェクトは、NormalizationDimension
プロパティを文字ベクトルとして格納します。
ゼロ中心正規化および z スコア正規化の平均。h x w x c の配列、チャネルごとの平均から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ平均の高さ、幅、およびチャネル数に対応します。
Mean
プロパティを指定するには、Normalization
プロパティが "zerocenter"
または "zscore"
でなければなりません。Mean
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して平均を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、プロパティを0
に設定します。
Mean
に複素数値を使用できます。 (R2024a 以降)Mean
が複素数値の場合、SplitComplexInputs
オプションは 0
(false
) でなければなりません。
R2024a より前: 平均を実数部と虚数部に分割し、入力データが実数部と虚数部に分割されるように SplitComplexInputs
オプションを 1
(true
) に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
複素数のサポート: あり
z スコア正規化の標準偏差。h x w x c の配列、チャネルごとの平均から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ標準偏差の高さ、幅、およびチャネル数に対応します。
StandardDeviation
プロパティを指定するには、Normalization
プロパティが "zscore"
でなければなりません。StandardDeviation
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して標準偏差を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、プロパティを1
に設定します。
StandardDeviation
に複素数値を使用できます。 (R2024a 以降)StandardDeviation
が複素数値の場合、SplitComplexInputs
オプションは 0
(false
) でなければなりません。
R2024a より前: 標準偏差を実数部と虚数部に分割し、入力データが実数部と虚数部に分割されるように SplitComplexInputs
オプションを 1
(true
) に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
複素数のサポート: あり
再スケーリングの最小値。h x w x c の配列、チャネルごとの最小値から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ最小値の高さ、幅、およびチャネル数に対応します。
Min
プロパティを指定するには、Normalization
が "rescale-symmetric"
または "rescale-zero-one"
でなければなりません。Min
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して最小値を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、Normalization
が"rescale-symmetric"
の場合はプロパティを-1
に設定し、"rescale-zero-one"
の場合はプロパティを0
に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
再スケーリングの最大値。h x w x c の配列、チャネルごとの最大値から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ最大値の高さ、幅、およびチャネル数に対応します。
Max
プロパティを指定するには、Normalization
が "rescale-symmetric"
または "rescale-zero-one"
でなければなりません。Max
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して最大値を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、プロパティを1
に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
入力データを実数部と虚数部に分割するためのフラグ。次のいずれかの値として指定します。
0
(false
) – 入力データを分割しません。1
(true
) – 入力データを実数部と虚数部に分割します。
SplitComplexInputs
が 1
の場合、層の出力に含まれるチャネル数は、入力データに含まれるチャネル数の 2 倍になります。たとえば、入力データが numChannels
個のチャネルをもつ複素数値の場合、層は 2*numChannels
個のチャネルをもつデータを出力します。このとき、1
~ numChannels
番目のチャネルには入力データの実数部が格納され、numChannels+1
~ 2*numChannels
番目のチャネルには入力データの虚数部が格納されます。入力データが実数の場合、numChannels+1
~ 2*numChannels
番目のチャネルはすべて 0 になります。
入力データが複素数値で、SplitComplexInputs
が 0
(false
) の場合、層は複素数値のデータを次の層に渡します。 (R2024a 以降)
R2024a より前: 複素数値のデータをニューラル ネットワークに入力するには、入力層の SplitComplexInputs
オプションが 1
(true
) でなければなりません。
複素数値のデータをもつネットワークに学習させる方法を説明する例については、複素数値データを使用したネットワークの学習を参照してください。
プロパティ
イメージ入力
この プロパティ は読み取り専用です。
入力データのサイズ。整数の行ベクトル [h w c]
として指定します。ここで、h
、w
、および c
はそれぞれ高さ、幅、およびチャネル数に対応します。
グレースケール イメージの場合、
c
が1
に等しいベクトルを指定します。RGB イメージの場合、
c
が3
に等しいベクトルを指定します。マルチスペクトル イメージまたはハイパースペクトル イメージの場合、
c
がチャネル数に等しいベクトルを指定します。
3 次元イメージ入力またはボリューム入力の場合、image3dInputLayer
を使用します。
この プロパティ は読み取り専用です。
データが入力層を通じて順伝播されるたびに適用するデータ正規化。次のいずれかに指定します。
"zerocenter"
—Mean
によって指定された平均を減算します。"zscore"
—Mean
によって指定された平均を減算し、StandardDeviation
で除算します。"rescale-symmetric"
—Min
およびMax
によってそれぞれ指定された最小値と最大値を使用して、範囲 [-1, 1] に入力を再スケーリングします。"rescale-zero-one"
—Min
およびMax
によってそれぞれ指定された最小値と最大値を使用して、範囲 [0, 1] に入力を再スケーリングします。"none"
— 入力データを正規化しません。関数ハンドル — 指定した関数を使用してデータを正規化します。関数は、
Y = f(X)
という形式でなければなりません。ここで、X
は入力データ、出力Y
は正規化データです。
入力データが複素数値で、SplitComplexInputs
オプションが 0
(false
) の場合、Normalization
オプションは、"zerocenter"
、"zscore"
、"none"
、または関数ハンドルでなければなりません。 (R2024a 以降)
R2024a より前: 複素数値のデータをネットワークに入力するには、SplitComplexInputs
オプションが 1
(true
) でなければなりません。
ヒント
既定では、ソフトウェアは、関数 trainnet
の使用時に正規化統計量を自動的に計算します。学習時に時間を節約するため、正規化に必要な統計量を指定し、trainingOptions
で ResetInputNormalization
オプションを 0
(false
) に設定します。
ImageInputLayer
オブジェクトは、このプロパティを文字ベクトルまたは関数ハンドルとして格納します。
正規化の次元。次のいずれかに指定します。
"auto"
–ResetInputNormalization
学習オプションが0
(false
) の場合、いずれかの正規化統計量 (Mean
、StandardDeviation
、Min
、またはMax
) を指定し、統計量に一致する次元に対して正規化を行います。そうでない場合、学習時に統計量を再計算し、チャネル単位の正規化を適用します。"channel"
– チャネル単位の正規化。"element"
– 要素単位の正規化。"all"
– スカラーの統計量を使用してすべての値を正規化します。
ImageInputLayer
オブジェクトは、このプロパティを文字ベクトルとして格納します。
ゼロ中心正規化および z スコア正規化の平均。h x w x c の配列、チャネルごとの平均から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ平均の高さ、幅、およびチャネル数に対応します。
Mean
プロパティを指定するには、Normalization
プロパティが "zerocenter"
または "zscore"
でなければなりません。Mean
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して平均を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、プロパティを0
に設定します。
Mean
に複素数値を使用できます。 (R2024a 以降)Mean
が複素数値の場合、SplitComplexInputs
オプションは 0
(false
) でなければなりません。
R2024a より前: 平均を実数部と虚数部に分割し、入力データが実数部と虚数部に分割されるように SplitComplexInputs
オプションを 1
(true
) に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
複素数のサポート: あり
z スコア正規化の標準偏差。h x w x c の配列、チャネルごとの平均から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ標準偏差の高さ、幅、およびチャネル数に対応します。
StandardDeviation
プロパティを指定するには、Normalization
プロパティが "zscore"
でなければなりません。StandardDeviation
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して標準偏差を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、プロパティを1
に設定します。
StandardDeviation
に複素数値を使用できます。 (R2024a 以降)StandardDeviation
が複素数値の場合、SplitComplexInputs
オプションは 0
(false
) でなければなりません。
R2024a より前: 標準偏差を実数部と虚数部に分割し、入力データが実数部と虚数部に分割されるように SplitComplexInputs
オプションを 1
(true
) に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
複素数のサポート: あり
再スケーリングの最小値。h x w x c の配列、チャネルごとの最小値から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ最小値の高さ、幅、およびチャネル数に対応します。
Min
プロパティを指定するには、Normalization
が "rescale-symmetric"
または "rescale-zero-one"
でなければなりません。Min
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して最小値を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、Normalization
が"rescale-symmetric"
の場合はプロパティを-1
に設定し、"rescale-zero-one"
の場合はプロパティを0
に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
再スケーリングの最大値。h x w x c の配列、チャネルごとの最大値から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ最大値の高さ、幅、およびチャネル数に対応します。
Max
プロパティを指定するには、Normalization
が "rescale-symmetric"
または "rescale-zero-one"
でなければなりません。Max
が []
の場合、学習時または初期化時にプロパティが自動的に設定されます。
関数
trainnet
は、学習データを使用して最大値を計算し、結果の値を使用します。Initialize
オプションが1
(true
) の場合、関数initialize
および関数dlnetwork
は、プロパティを1
に設定します。
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
この プロパティ は読み取り専用です。
入力データを実数部と虚数部に分割するためのフラグ。次のいずれかの値として指定します。
0
(false
) – 入力データを分割しません。1
(true
) – 入力データを実数部と虚数部に分割します。
SplitComplexInputs
が 1
の場合、層の出力に含まれるチャネル数は、入力データに含まれるチャネル数の 2 倍になります。たとえば、入力データが numChannels
個のチャネルをもつ複素数値の場合、層は 2*numChannels
個のチャネルをもつデータを出力します。このとき、1
~ numChannels
番目のチャネルには入力データの実数部が格納され、numChannels+1
~ 2*numChannels
番目のチャネルには入力データの虚数部が格納されます。入力データが実数の場合、numChannels+1
~ 2*numChannels
番目のチャネルはすべて 0 になります。
入力データが複素数値で、SplitComplexInputs
が 0
(false
) の場合、層は複素数値のデータを次の層に渡します。 (R2024a 以降)
R2024a より前: 複素数値のデータをニューラル ネットワークに入力するには、入力層の SplitComplexInputs
オプションが 1
(true
) でなければなりません。
複素数値のデータをもつネットワークに学習させる方法を説明する例については、複素数値データを使用したネットワークの学習を参照してください。
層
この プロパティ は読み取り専用です。
層の入力の数。この層には入力がありません。
データ型: double
この プロパティ は読み取り専用です。
層の入力名。この層には入力がありません。
データ型: cell
この プロパティ は読み取り専用です。
層からの出力の数。1
として格納されます。この層には単一の出力のみがあります。
データ型: double
この プロパティ は読み取り専用です。
出力名。{'out'}
として格納されます。この層には単一の出力のみがあります。
データ型: cell
例
28×28 のカラー イメージのイメージ入力層を作成します。
inputlayer = imageInputLayer([28 28 3])
inputlayer = ImageInputLayer with properties: Name: '' InputSize: [28 28 3] SplitComplexInputs: 0 Hyperparameters DataAugmentation: 'none' Normalization: 'zerocenter' NormalizationDimension: 'auto' Mean: []
Layer
配列にイメージ入力層を含めます。
layers = [ imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,Stride=2) fullyConnectedLayer(10) softmaxLayer]
layers = 6×1 Layer array with layers: 1 '' Image Input 28×28×1 images with 'zerocenter' normalization 2 '' 2-D Convolution 20 5×5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 2-D Max Pooling 2×2 max pooling with stride [2 2] and padding [0 0 0 0] 5 '' Fully Connected 10 fully connected layer 6 '' Softmax softmax
アルゴリズム
層配列内または層グラフ内の層は、形式を整えた dlarray
オブジェクトとして後続の層にデータを渡します。dlarray
オブジェクトの形式は文字列で、各文字はデータ内の対応する次元を表します。この形式には次の文字が 1 つ以上含まれています。
"S"
— 空間"C"
— チャネル"B"
— バッチ"T"
— 時間"U"
— 指定なし
たとえば、4 次元配列として表された 2 次元イメージ データがあり、最初の 2 つの次元がイメージの空間次元に対応し、3 番目の次元がイメージのチャネルに対応し、4 番目の次元がバッチ次元に対応している場合、このイメージ データは "SSCB"
(空間、空間、チャネル、バッチ) という形式で記述できます。
ネットワークの入力層は、ネットワークで必要とされるデータのレイアウトを指定します。データのレイアウトが異なる場合、InputDataFormats
学習オプションを使用してレイアウトを指定します。
この層は、h×w×c×N の配列をネットワークに入力します。ここで、h、w、および c は、それぞれイメージの高さ、幅、およびチャネル数です。N はイメージの数です。このレイアウトのデータは、"SSCB"
(spatial、spatial、channel、batch) のデータ形式になります。
ニューラル ネットワークへの入力が複素数値の場合、SplitComplexIputs
が 0
(false
) のとき、層は複素数値のデータを後続の層に渡します。 (R2024a 以降)
R2024a より前: 複素数値のデータをニューラル ネットワークに入力するには、入力層の SplitComplexInputs
オプションが 1
(true
) でなければなりません。
入力データが複素数値で、SplitComplexInputs
オプションが 0
(false
) の場合、Normalization
オプションは、"zerocenter"
、"zscore"
、"none"
、または関数ハンドルでなければなりません。層の Mean
プロパティおよび StandardDeviation
プロパティでは、正規化オプション "zerocenter"
および "zscore"
に複素数値のデータを使用することもできます。
複素数値のデータをもつネットワークに学習させる方法を説明する例については、複素数値データを使用したネットワークの学習を参照してください。
参照
[1] Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks." Communications of the ACM 60, no. 6 (May 24, 2017): 84–90. https://doi.org/10.1145/3065386.
[2] Cireşan, D., U. Meier, J. Schmidhuber. "Multi-column Deep Neural Networks for Image Classification". IEEE Conference on Computer Vision and Pattern Recognition, 2012.
拡張機能
使用上の注意および制限:
コード生成では、指定なし (U) の次元をもつ
dlarray
オブジェクトをこの層に渡すことはサポートされていません。コード生成では、関数ハンドルを使用して指定される
Normalization
はサポートされません。コード生成では、複素数の入力がサポートされておらず、
SplitComplexInputs
オプションもサポートされていません。
使用上の注意および制限については、「C/C++ コード生成」セクションを参照してください。GPU コード生成にも同じ制限が適用されます。
バージョン履歴
R2016a で導入ニューラル ネットワークへの入力が複素数値の場合、SplitComplexIputs
が 0
(false
) のとき、層は複素数値のデータを後続の層に渡します。
入力データが複素数値で、SplitComplexInputs
オプションが 0
(false
) の場合、Normalization
オプションは、"zerocenter"
、"zscore"
、"none"
、または関数ハンドルでなければなりません。層の Mean
プロパティおよび StandardDeviation
プロパティでは、正規化オプション "zerocenter"
および "zscore"
に複素数値のデータを使用することもできます。
AverageImage
は削除される予定です。代わりに Mean
を使用してください。コードを更新するには、AverageImage
のすべてのインスタンスを Mean
に置き換えます。プロパティの間に違いがない場合は、コードをさらに更新する必要があります。
R2019b 以降では、imageInputLayer
および image3dInputLayer
は既定でチャネル単位の正規化を使用します。以前のバージョンでは、これらの層は要素単位の正規化を使用します。この動作を再現するには、これらの層の NormalizationDimension
オプションを 'element'
に設定します。
DataAugmentation
プロパティは推奨されません。トリミング、反転、およびその他の幾何変換によってイメージを前処理するには、代わりに augmentedImageDatastore
を使用します。
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)