このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
imageInputLayer
イメージ入力層
作成
説明
はイメージ入力層を返し、layer
= imageInputLayer(inputSize
)InputSize
プロパティを指定します。
は、1 つ以上の名前と値の引数を使用して、オプションの layer
= imageInputLayer(inputSize
,Name=Value
)Normalization
、NormalizationDimension
、Mean
、StandardDeviation
、Min
、Max
、SplitComplexInputs
、および Name
プロパティを設定します。
プロパティ
イメージ入力
InputSize
— 入力のサイズ
整数の行ベクトル
この プロパティ は読み取り専用です。
入力データのサイズ。整数の行ベクトル [h w c]
として指定します。ここで、h
、w
、および c
はそれぞれ高さ、幅、およびチャネル数に対応します。
グレースケール イメージの場合、
c
が1
に等しいベクトルを指定します。RGB イメージの場合、
c
が3
に等しいベクトルを指定します。マルチスペクトル イメージまたはハイパースペクトル イメージの場合、
c
がチャネル数に等しいベクトルを指定します。
3 次元イメージ入力またはボリューム入力の場合、image3dInputLayer
を使用します。
Normalization
— データ正規化
"zerocenter"
(既定値) | "zscore"
| "rescale-symmetric"
| "rescale-zero-one"
| "none"
| 関数ハンドル
この プロパティ は読み取り専用です。
データが入力層を通じて順伝播されるたびに適用するデータ正規化。次のいずれかに指定します。
"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
オブジェクトは、このプロパティを文字ベクトルまたは関数ハンドルとして格納します。
NormalizationDimension
— 正規化の次元
"auto"
(既定値) | "channel"
| "element"
| "all"
正規化の次元。次のいずれかに指定します。
"auto"
– 学習オプションが0
(false
) の場合、いずれかの正規化統計量 (Mean
、StandardDeviation
、Min
、またはMax
) を指定し、統計量に一致する次元に対して正規化を行います。そうでない場合、学習時に統計量を再計算し、チャネル単位の正規化を適用します。"channel"
– チャネル単位の正規化。"element"
– 要素単位の正規化。"all"
– スカラーの統計量を使用してすべての値を正規化します。
ImageInputLayer
オブジェクトは、このプロパティを文字ベクトルとして格納します。
Mean
— ゼロ中心正規化および z スコア正規化の平均
[]
(既定値) | 3 次元配列 | 数値スカラー
ゼロ中心正規化および 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
複素数のサポート: あり
StandardDeviation
— z スコア正規化の標準偏差
[]
(既定値) | 3 次元配列 | 数値スカラー
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
複素数のサポート: あり
Min
— 再スケーリングの最小値
[]
(既定値) | 3 次元配列 | 数値スカラー
再スケーリングの最小値。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
Max
— 再スケーリングの最大値
[]
(既定値) | 3 次元配列 | 数値スカラー
再スケーリングの最大値。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
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
が 0
(false
) の場合、層は複素数値のデータを次の層に渡します。 (R2024a 以降)
R2024a より前: 複素数値のデータをニューラル ネットワークに入力するには、入力層の SplitComplexInputs
オプションが 1
(true
) でなければなりません。
複素数値のデータをもつネットワークに学習させる方法を説明する例については、複素数値データを使用したネットワークの学習を参照してください。
層
NumInputs
— 入力の数
0 (既定値)
この プロパティ は読み取り専用です。
層の入力の数。この層には入力がありません。
データ型: double
InputNames
— 入力名
{}
(既定値)
この プロパティ は読み取り専用です。
層の入力名。この層には入力がありません。
データ型: cell
NumOutputs
— 出力の数
1
(既定値)
この プロパティ は読み取り専用です。
層からの出力の数。1
として返されます。この層には単一の出力のみがあります。
データ型: double
OutputNames
— 出力名
{'out'}
(既定値)
この プロパティ は読み取り専用です。
出力名。{'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 = 6x1 Layer array with layers: 1 '' Image Input 28x28x1 images with 'zerocenter' normalization 2 '' 2-D Convolution 20 5x5 convolutions with stride [1 1] and padding [0 0 0 0] 3 '' ReLU ReLU 4 '' 2-D Max Pooling 2x2 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.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
コード生成では、関数ハンドルを使用して指定される
Normalization
はサポートされません。コード生成では、複素数の入力がサポートされておらず、
SplitComplexInputs
オプションもサポートされていません。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
使用上の注意および制限:
コード生成では、関数ハンドルを使用して指定される
Normalization
はサポートされません。コード生成では、複素数の入力がサポートされておらず、
SplitComplexInputs
オプションもサポートされていません。
バージョン履歴
R2016a で導入R2024a: 複素数値の出力
ニューラル ネットワークへの入力が複素数値の場合、SplitComplexIputs
が 0
(false
) のとき、層は複素数値のデータを後続の層に渡します。
入力データが複素数値で、SplitComplexInputs
オプションが 0
(false
) の場合、Normalization
オプションは、"zerocenter"
、"zscore"
、"none"
、または関数ハンドルでなければなりません。層の Mean
プロパティおよび StandardDeviation
プロパティでは、正規化オプション "zerocenter"
および "zscore"
に複素数値のデータを使用することもできます。
R2019b: AverageImage
プロパティは削除予定
AverageImage
は削除される予定です。代わりに Mean
を使用してください。コードを更新するには、AverageImage
のすべてのインスタンスを Mean
に置き換えます。プロパティの間に違いがない場合は、コードをさらに更新する必要があります。
R2019b: imageInputLayer
および image3dInputLayer
は既定でチャネル単位の正規化を使用
R2019b 以降では、imageInputLayer
および image3dInputLayer
は既定でチャネル単位の正規化を使用します。以前のバージョンでは、これらの層は要素単位の正規化を使用します。この動作を再現するには、これらの層の NormalizationDimension
オプションを 'element'
に設定します。
R2018a: DataAugmentation
は非推奨
DataAugmentation
プロパティは推奨されません。トリミング、反転、およびその他の幾何変換によってイメージを前処理するには、代わりに augmentedImageDatastore
を使用します。
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)