ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

imageInputLayer

説明

イメージ入力層は、ネットワークに 2 次元イメージを入力し、データ正規化を適用します。

3 次元イメージ入力の場合、image3dInputLayer を使用します。

作成

説明

layer = imageInputLayer(inputSize) はイメージ入力層を返し、InputSize プロパティを指定します。

layer = imageInputLayer(inputSize,Name,Value) は、名前と値のペアを使用して、オプションのプロパティを設定します。複数の名前と値のペアを指定できます。各プロパティ名を一重引用符で囲みます。

プロパティ

すべて展開する

イメージ入力

入力データのサイズ。整数の行ベクトル [h w c] として指定します。ここで、hw、および c はそれぞれ高さ、幅、およびチャネル数に対応します。

  • グレースケール イメージの場合、c1 に等しいベクトルを指定します。

  • RGB イメージの場合、c3 に等しいベクトルを指定します。

  • マルチスペクトル イメージまたはハイパースペクトル イメージの場合、c がチャネル数に等しいベクトルを指定します。

3 次元イメージ入力またはボリューム入力の場合、image3dInputLayer を使用します。

例: [224 224 3]

データが入力層を通じて順伝播されるたびに適用するデータ変換。次のいずれかに指定します。

  • 'zerocenter'AverageImage プロパティによって指定された平均イメージを減算します。関数 trainNetwork によって、学習時に平均イメージが自動的に計算されます。

  • 'none' — 入力データを変換しません。

ゼロ中心正規化に使用される平均イメージ。h x w x c の配列、チャネルごとの平均から成る 1 x 1 x c の配列、または [] として指定します。ここで、h、w、および c はそれぞれ平均イメージの高さ、幅、およびチャネル数に対応します。

学習を行わずにネットワークを作成する場合 (assembleNetwork を使用してネットワークを組み立てる場合など)、このプロパティを設定できます。そうでない場合、関数 trainNetwork によって、学習時に平均イメージが再計算されます。平均イメージを指定するときには、Normalization プロパティが 'zerocenter' でなければなりません。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

メモ

DataAugmentation プロパティは推奨されません。切り取り、反転、およびその他の幾何変換によってイメージを前処理するには、代わりに augmentedImageDatastore を使用します。

学習時に使用するデータ拡張変換。次のいずれかに指定します。

  • 'none' — データ拡張を行いません。

  • 'randcrop' — 学習イメージからランダムに切り取ります。ランダムなトリミングのサイズは、入力のサイズと同じです。

  • 'randfliplr' — 50% の確率で入力イメージを水平方向にランダムに反転させます。

  • 'randcrop' および 'randfliplr' の cell 配列。cell 配列で指定された順序で拡張が適用されます。

イメージ データの拡張は、過適合を防ぐ方法の 1 つです [1][2]

データ型: char | cell

層の名前。文字ベクトルまたは string スカラーとして指定します。層グラフに層を含めるには、空ではない一意の層の名前を指定しなければなりません。この層が含まれる系列ネットワークに学習させて Name'' に設定すると、学習時に層に名前が自動的に割り当てられます。

データ型: char | string

層の入力の数。この層には入力がありません。

データ型: double

層の入力名。この層には入力がありません。

データ型: cell

層の出力の数。この層には単一の出力のみがあります。

データ型: double

層の出力名。この層には単一の出力のみがあります。

データ型: cell

すべて折りたたむ

'input' という名前で 28 x 28 のカラー イメージのイメージ入力層を作成します。既定では、すべての入力イメージから学習セットの平均イメージを減算することで、層でデータ正規化が実行されます。

inputlayer = imageInputLayer([28 28 3],'Name','input')
inputlayer = 
  ImageInputLayer with properties:

                Name: 'input'
           InputSize: [28 28 3]

   Hyperparameters
    DataAugmentation: 'none'
       Normalization: 'zerocenter'
        AverageImage: []

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   ''   Convolution             20 5x5 convolutions with stride [1  1] and padding [0  0  0  0]
     3   ''   ReLU                    ReLU
     4   ''   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.

R2016a で導入