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
を使用します。
例: [224 224 3]
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 = func(X)
という形式でなければなりません。ここで、X
は入力データ、出力Y
は正規化データです。
ヒント
既定では、関数 trainNetwork
の使用時に正規化統計量が自動的に計算されます。学習時に時間を節約するため、正規化に必要な統計量を指定し、trainingOptions
で ResetInputNormalization
オプションを 0
(false
) に設定します。
NormalizationDimension
— 正規化の次元
'auto'
(既定値) | 'channel'
| 'element'
| 'all'
正規化の次元。次のいずれかに指定します。
'auto'
– 学習オプションがfalse
の場合、いずれかの正規化統計量 (Mean
、StandardDeviation
、Min
、またはMax
) を指定し、統計量に一致する次元に対して正規化を行います。そうでない場合、学習時に統計量を再計算し、チャネル単位の正規化を適用します。'channel'
– チャネル単位の正規化。'element'
– 要素単位の正規化。'all'
– スカラーの統計量を使用してすべての値を正規化します。
データ型: char
| string
Mean
— ゼロ中心正規化および z スコア正規化の平均
[]
(既定値) | 3 次元配列 | 数値スカラー
ゼロ中心正規化および z スコア正規化の平均。h x w x c の配列、チャネルごとの平均から成る 1 x 1 x c の配列、数値スカラー、または []
として指定します。ここで、h、w、および c はそれぞれ平均の高さ、幅、およびチャネル数に対応します。
Mean
プロパティを指定する場合、Normalization
は 'zerocenter'
または 'zscore'
でなければなりません。Mean
が []
の場合、関数 trainNetwork
は平均を計算します。カスタム学習ループを使用して dlnetwork
オブジェクトに学習させる場合、または関数 assembleNetwork
を使用して学習を行わずにネットワークを組み立てる場合は、Mean
プロパティを数値スカラーまたは数値配列に設定しなければなりません。
データ型: 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
が []
の場合、関数 trainNetwork
は標準偏差を計算します。カスタム学習ループを使用して dlnetwork
オブジェクトに学習させる場合、または関数 assembleNetwork
を使用して学習を行わずにネットワークを組み立てる場合は、StandardDeviation
プロパティを数値スカラーまたは数値配列に設定しなければなりません。
データ型: 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
が []
の場合、関数 trainNetwork
は最小値を計算します。カスタム学習ループを使用して dlnetwork
オブジェクトに学習させる場合、または関数 assembleNetwork
を使用して学習を行わずにネットワークを組み立てる場合は、Min
プロパティを数値スカラーまたは数値配列に設定しなければなりません。
データ型: 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
が []
の場合、関数 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を参照してください。
DataAugmentation
— データ拡張変換
'none'
(既定値) | 'randcrop'
| 'randfliplr'
| 'randcrop'
および 'randfliplr'
の cell 配列
この プロパティ は読み取り専用です。
メモ
DataAugmentation
プロパティは推奨されません。トリミング、反転、およびその他の幾何変換によってイメージを前処理するには、代わりに augmentedImageDatastore
を使用します。
学習時に使用するデータ拡張変換。次のいずれかに指定します。
'none'
— データ拡張を行いません。'randcrop'
— 学習イメージからランダムにトリミングします。ランダムなトリミングのサイズは、入力のサイズと同じです。'randfliplr'
— 50% の確率で入力イメージを水平方向にランダムに反転させます。'randcrop'
および'randfliplr'
の cell 配列。cell 配列で指定された順序で拡張が適用されます。
イメージ データの拡張は、過適合を防ぐ方法の 1 つです [1]、[2]。
データ型: string
| char
| cell
層
Name
— 層の名前
''
(既定値) | 文字ベクトル | string スカラー
層の名前。文字ベクトルまたは string スカラーとして指定します。Layer
配列入力の場合、関数 trainNetwork
、assembleNetwork
、layerGraph
、および dlnetwork
は、名前が ''
の層に自動的に名前を割り当てます。
データ型: char
| string
NumInputs
— 入力の数
0 (既定値)
この プロパティ は読み取り専用です。
層の入力の数。この層には入力がありません。
データ型: double
InputNames
— 入力名
{}
(既定値)
この プロパティ は読み取り専用です。
層の入力名。この層には入力がありません。
データ型: cell
NumOutputs
— 出力の数
1
(既定値)
この プロパティ は読み取り専用です。
層の出力の数。この層には単一の出力のみがあります。
データ型: double
OutputNames
— 出力名
{'out'}
(既定値)
この プロパティ は読み取り専用です。
層の出力名。この層には単一の出力のみがあります。
データ型: cell
例
イメージ入力層の作成
'input'
という名前で 28 x 28 のカラー イメージのイメージ入力層を作成します。既定では、すべての入力イメージから学習セットの平均イメージを減算することで、層でデータ正規化が実行されます。
inputlayer = imageInputLayer([28 28 3],'Name','input')
inputlayer = ImageInputLayer with properties: Name: 'input' 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 classificationLayer]
layers = 7x1 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 7 '' Classification Output crossentropyex
参照
[1] Krizhevsky, A., I. Sutskever, and G. E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks". Advances in Neural Information Processing Systems. Vol 25, 2012.
[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 で導入R2019b: AverageImage
プロパティは削除予定
AverageImage
は削除される予定です。代わりに Mean
を使用してください。コードを更新するには、AverageImage
のすべてのインスタンスを Mean
に置き換えます。プロパティの間に違いがない場合は、コードをさらに更新する必要があります。
R2019b: imageInputLayer
および image3dInputLayer
は既定でチャネル単位の正規化を使用
R2019b 以降では、imageInputLayer
および image3dInputLayer
は既定でチャネル単位の正規化を使用します。以前のバージョンでは、これらの層は要素単位の正規化を使用します。この動作を再現するには、これらの層の 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)