このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
augmentedImageSource
(削除予定) 拡張イメージ データのバッチの生成
augmentedImageSource
は将来のリリースで削除される予定です。代わりに、関数 augmentedImageDatastore
を使用して拡張イメージ データストアを作成してください。詳細については、互換性の考慮事項を参照してください。
構文
説明
は、イメージ データストア auimds
= augmentedImageSource(outputSize
,imds
)imds
のイメージを使用して、出力イメージ サイズ outputSize
で、分類問題用の拡張イメージ データストア auimds
を作成します。
は、分類問題および回帰問題用の拡張イメージ データストアを作成します。配列 auimds
= augmentedImageSource(outputSize
,X
,Y
)X
には予測子変数が含まれ、配列 Y
にはカテゴリカル ラベルまたは数値応答が含まれます。
は、分類問題および回帰問題用の拡張イメージ データストアを作成します。テーブル auimds
= augmentedImageSource(outputSize
,tbl
)tbl
には、予測子と応答が含まれます。
は、分類問題および回帰問題用の拡張イメージ データストアを作成します。テーブル auimds
= augmentedImageSource(outputSize
,tbl
,responseNames
)tbl
には、予測子と応答が含まれます。引数 responseNames
は、tbl
の応答変数を指定します。
は、拡張イメージ データストアによって実行されるイメージの前処理を構成する名前と値のペアを使用して、拡張イメージ データストアを作成します。複数の名前と値のペアを指定できます。auimds
= augmentedImageSource(___,Name,Value
)
例
augmentedImageSource
を使用した、回転不変性を持つネットワークの学習
ランダムな回転を使用してイメージの前処理を行い、学習済み畳み込みニューラル ネットワークが回転不変性を持つようにします。この例では、関数 augmentedImageSource
を使用して拡張イメージ データストア オブジェクトを作成します。関数 augmentedImageDatastore
を使用して拡張イメージ データストア オブジェクトを作成する推奨ワークフローの例については、拡張イメージを使用したネットワークの学習を参照してください。
標本データを読み込みます。標本データは、手書き数字の合成イメージで構成されています。
[XTrain,YTrain] = digitTrain4DArrayData;
digitTrain4DArrayData
は、数字の学習セットを 4 次元配列データとして読み込みます。XTrain
は、28 x 28 x 1 x 5000 の配列です。
28 はイメージの高さと幅。
1 はチャネルの数。
5000 は手書き数字の合成イメージの数。
YTrain
は、各観測値のラベルが含まれる categorical ベクトルです。
学習中にイメージを回転させるイメージ オーグメンターを作成します。このイメージ オーグメンターは、ランダムな角度で各イメージを回転させます。
imageAugmenter = imageDataAugmenter('RandRotation',[-180 180])
imageAugmenter = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [-180 180] RandScale: [1 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [0 0] RandYTranslation: [0 0]
関数 augmentedImageSource
を使用して拡張イメージ データストアを作成します。拡張イメージのサイズ、学習データ、およびイメージ オーグメンターを指定します。
imageSize = [28 28 1];
auimds = augmentedImageSource(imageSize,XTrain,YTrain,'DataAugmentation',imageAugmenter)
auimds = augmentedImageDatastore with properties: NumObservations: 5000 MiniBatchSize: 128 DataAugmentation: [1x1 imageDataAugmenter] ColorPreprocessing: 'none' OutputSize: [28 28] OutputSizeMode: 'resize' DispatchInBackground: 0
畳み込みニューラル ネットワーク アーキテクチャを指定します。
layers = [ imageInputLayer([28 28 1]) convolution2dLayer(3,16,'Padding',1) batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,32,'Padding',1) batchNormalizationLayer reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(3,64,'Padding',1) batchNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];
モーメンタム項付き確率的勾配降下法の学習オプションを設定します。
opts = trainingOptions('sgdm', ... 'MaxEpochs',10, ... 'Shuffle','every-epoch', ... 'InitialLearnRate',1e-3);
ネットワークに学習をさせます。
net = trainNetwork(auimds,layers,opts);
Training on single CPU. Initializing image normalization. |========================================================================================| | Epoch | Iteration | Time Elapsed | Mini-batch | Mini-batch | Base Learning | | | | (hh:mm:ss) | Accuracy | Loss | Rate | |========================================================================================| | 1 | 1 | 00:00:01 | 7.81% | 2.4151 | 0.0010 | | 2 | 50 | 00:00:23 | 52.34% | 1.4930 | 0.0010 | | 3 | 100 | 00:00:44 | 74.22% | 1.0148 | 0.0010 | | 4 | 150 | 00:01:05 | 78.13% | 0.8153 | 0.0010 | | 6 | 200 | 00:01:26 | 76.56% | 0.6903 | 0.0010 | | 7 | 250 | 00:01:45 | 87.50% | 0.4891 | 0.0010 | | 8 | 300 | 00:02:06 | 87.50% | 0.4874 | 0.0010 | | 9 | 350 | 00:02:30 | 87.50% | 0.4866 | 0.0010 | | 10 | 390 | 00:02:46 | 89.06% | 0.4021 | 0.0010 | |========================================================================================|
入力引数
outputSize
— 出力イメージのサイズ
2 つの正の整数のベクトル
出力イメージのサイズ。2 つの正の整数のベクトルとして指定します。最初の要素は出力イメージの行数、2 番目の要素は列数を指定します。この値は、返される拡張イメージ データストア auimds
の OutputSize
プロパティを設定します。
imds
— イメージ データストア
ImageDatastore
オブジェクト
イメージ データストア。ImageDatastore
オブジェクトとして指定します。
ヒント
イメージのサイズ変更を含む深層学習用のイメージの前処理を効率的に行うには、augmentedImageDatastore
を使用します。ImageDatastore
オブジェクトの ReadFcn
オプションを使用しないでください。
ImageDatastore
を使用すると、事前取得を使用して JPG または PNG イメージ ファイルのバッチ読み取りを行うことができます。ReadFcn
オプションをカスタム関数に設定した場合、ImageDatastore
は事前取得を行わないため、通常、速度が大幅に低下します。
X
— イメージ
4 次元数値配列
イメージ。4 次元数値配列として指定します。最初の 3 つの次元は高さ、幅、およびチャネルであり、最後の次元は個々のイメージにインデックスを付けます。
配列に NaN
が含まれる場合、学習全体に伝播されます。ただし、ほとんどの場合に学習が収束しなくなります。
データ型: single
| double
| uint8
| int8
| uint16
| int16
| uint32
| int32
Y
— 分類または回帰の応答
カテゴリカル応答の配列 | 数値行列 | 4 次元数値配列
分類または回帰の応答。次のいずれかに指定します。
分類問題で、
Y
がイメージ ラベルを含む categorical ベクトル。回帰問題では、
Y
は次のいずれかになる。n 行 r 列の数値行列。n は観測値の数、r は応答の数です。
h x w x c x n の数値配列。h x w x c は 1 つの応答のサイズ、n は観測値の数です。
応答に NaN
が含まれていてはなりません。
データ型: categorical
| double
tbl
— 入力データ
table
入力データ。テーブルとして指定します。tbl
は、最初の列に予測子を、絶対イメージ パス、相対イメージ パス、あるいはイメージとして含まなければなりません。応答の型と場所は、問題によって異なります。
分類問題では、応答はイメージのラベルを含むカテゴリカル変数でなければなりません。
augmentedImageSource
を呼び出すときに応答変数の名前が指定されていない場合、応答は 2 列目に含まれていなければなりません。tbl
の異なる列に応答が含まれている場合、引数responseNames
を使用して応答変数名を指定しなければなりません。回帰問題では、応答は数値であり、最初の列より後の列に含まれなければなりません。応答は、スカラーとして複数の列に、あるいは数値ベクトルまたは 3 次元数値配列が含まれる cell 配列として 1 つの列に含めることができます。応答変数の名前を指定しない場合、
augmentedImageSource
はtbl
の残りの列を応答変数として受け入れます。引数responseNames
を使用して応答変数名を指定できます。
応答に NaN
が含まれていてはなりません。予測子データに NaN
が含まれる場合、学習全体に伝播されますが、ほとんどの場合に学習が収束しなくなります。
データ型: table
responseNames
— 入力テーブルの応答変数の名前
文字ベクトル | 文字ベクトルの cell 配列 | string 配列
入力テーブルの応答変数の名前。次のいずれかとして指定します。
1 つの応答をもつ分類または回帰タスクの場合、
responseNames
は、入力テーブルに応答変数が格納された文字ベクトルまたは string スカラーでなければなりません。複数の応答をもつ回帰タスクの場合、
responseNames
は、入力テーブルに応答変数が格納された string 配列または文字ベクトルの cell 配列でなければなりません。
データ型: char
| cell
| string
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: augmentedImageSource([28,28],myTable,'OutputSizeMode','centercrop')
は、中心からのイメージのトリミングを OutputSizeMode
プロパティに設定した、拡張イメージ データストアを作成します。
ColorPreprocessing
— 色の前処理演算
'none'
(既定値) | 'gray2rgb'
| 'rgb2gray'
入力イメージのカラー チャネルに対して実行される前処理演算。'ColorPreprocessing'
と 'none'
、'gray2rgb'
、または 'rgb2gray'
から構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds
の ColorPreprocessing
プロパティを設定します。ColorPreprocessing
プロパティは、拡張イメージ データストアからのすべての出力イメージが inputImageLayer
に必要な数のカラー チャネルを持つようにします。
DataAugmentation
— 入力イメージに適用される前処理
'none'
(既定値) | imageDataAugmenter
オブジェクト
入力イメージに適用される前処理。'DataAugmentation'
と imageDataAugmenter
オブジェクトまたは 'none'
から構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds
の DataAugmentation
プロパティを設定します。DataAugmentation
が 'none'
である場合、入力イメージには前処理が適用されません。
OutputSizeMode
— 出力イメージのサイズ変更に使用するメソッド
'resize'
(既定値) | 'centercrop'
| 'randcrop'
出力イメージのサイズ変更に使用するメソッド。'OutputSizeMode'
と次のいずれかから構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds
の OutputSizeMode
プロパティを設定します。
'resize'
— 出力サイズに当てはまるようにイメージをスケーリングします。詳細については、imresize
を参照してください。'centercrop'
— 学習イメージの中心からトリミングします。トリミングのサイズは、出力サイズと同じです。'randcrop'
— 学習イメージからランダムにトリミングします。ランダムなトリミングのサイズは、出力サイズと同じです。
データ型: char
| string
BackgroundExecution
— 拡張の並列実行
false
(既定値) | true
拡張の並列実行。'BackgroundExecution'
と false
または true
から構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds
の DispatchInBackground
プロパティを設定します。'BackgroundExecution'
が true
であり、Parallel Computing Toolbox™ ソフトウェアをインストール済みの場合、拡張イメージ データストア auimds
はイメージの拡張を並列実行します。
出力引数
auimds
— 拡張イメージ データストア
augmentedImageDatastore
オブジェクト
拡張イメージ データストア。augmentedImageDatastore
オブジェクトとして返されます。
バージョン履歴
R2017b で導入R2018a: augmentedImageSource
オブジェクトは削除済み
R2017b では、augmentedImageSource
オブジェクトを作成して、深層学習ネットワークの学習用にイメージを前処理できました。R2018a 以降では、augmentedImageSource
オブジェクトが削除されています。代わりに augmentedImageDatastore
オブジェクトを使用してください。
augmentedImageDatastore
には、データの前処理に役立つ追加のプロパティとメソッドがあります。学習以外に使用できない augmentedImageSource
とは異なり、augmentedImageDatastore
は学習と予測の両方に使用できます。
augmentedImageDatastore
オブジェクトを作成するには、関数 augmentedImageDatastore
(推奨) または関数 augmentedImageSource
のいずれかを使用できます。
R2018a: 関数 augmentedImageSource
は削除予定
関数 augmentedImageSource
は将来のリリースで削除される予定です。代わりに関数 augmentedImageDatastore
を使用して augmentedImageDatastore
を作成してください。
コードを更新するには、関数名 augmentedImageSource
のインスタンスを 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)