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 を使用して拡張イメージ データストア オブジェクトを作成します。関数 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 | |========================================================================================|
入力引数
出力イメージのサイズ。2 つの正の整数のベクトルとして指定します。最初の要素は出力イメージの行数、2 番目の要素は列数を指定します。この値は、返される拡張イメージ データストア auimds の OutputSize プロパティを設定します。
イメージ データストア。ImageDatastore オブジェクトとして指定します。
イメージ。4 次元数値配列として指定します。最初の 3 つの次元は高さ、幅、およびチャネルであり、最後の次元は個々のイメージにインデックスを付けます。
データ型: single | double | uint8 | int8 | uint16 | int16 | uint32 | int32
分類または回帰の応答。次のいずれかに指定します。
分類問題で、
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 は、最初の列に予測子を、絶対イメージ パス、相対イメージ パス、あるいはイメージとして含まなければなりません。応答の型と場所は、問題によって異なります。
分類問題では、応答はイメージのラベルを含むカテゴリカル変数でなければなりません。
augmentedImageSourceを呼び出すときに応答変数の名前が指定されていない場合、応答は 2 列目に含まれていなければなりません。tblの異なる列に応答が含まれている場合、引数responseNamesを使用して応答変数名を指定しなければなりません。回帰問題では、応答は数値であり、最初の列より後の列に含まれなければなりません。応答は、スカラーとして複数の列に、あるいは数値ベクトルまたは 3 次元数値配列が含まれる cell 配列として 1 つの列に含めることができます。応答変数の名前を指定しない場合、
augmentedImageSourceはtblの残りの列を応答変数として受け入れます。引数responseNamesを使用して応答変数名を指定できます。
応答に NaN の値が含まれていてはなりません。予測子データに NaN が含まれる場合、学習全体に伝播されますが、ほとんどの場合に学習が収束しなくなります。
データ型: table
入力テーブルの応答変数の名前。次のいずれかとして指定します。
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' から構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds の ColorPreprocessing プロパティを設定します。ColorPreprocessing プロパティは、拡張イメージ データストアからのすべての出力イメージが inputImageLayer に必要な数のカラー チャネルを持つようにします。
入力イメージに適用される前処理。'DataAugmentation' と imageDataAugmenter オブジェクトまたは 'none' から構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds の DataAugmentation プロパティを設定します。DataAugmentation が 'none' である場合、入力イメージには前処理が適用されません。
出力イメージのサイズ変更に使用するメソッド。'OutputSizeMode' と次のいずれかから構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds の OutputSizeMode プロパティを設定します。
'resize'— 出力サイズに当てはまるようにイメージをスケーリングします。詳細については、imresizeを参照してください。'centercrop'— 学習イメージの中心からトリミングします。トリミングのサイズは、出力サイズと同じです。'randcrop'— 学習イメージからランダムにトリミングします。ランダムなトリミングのサイズは、出力サイズと同じです。
データ型: char | string
拡張の並列実行。'BackgroundExecution' と false または true から構成されるコンマ区切りのペアとして指定します。この引数は、返される拡張イメージ データストア auimds の DispatchInBackground プロパティを設定します。'BackgroundExecution' が true であり、Parallel Computing Toolbox™ ソフトウェアをインストール済みの場合、拡張イメージ データストア auimds はイメージの拡張を並列実行します。
出力引数
拡張イメージ データストア。augmentedImageDatastore オブジェクトとして返されます。
バージョン履歴
R2017b で導入R2017b では、augmentedImageSource オブジェクトを作成して、深層学習ネットワークの学習用にイメージを前処理できました。R2018a 以降では、augmentedImageSource オブジェクトが削除されています。代わりに augmentedImageDatastore オブジェクトを使用してください。
augmentedImageDatastore には、データの前処理に役立つ追加のプロパティとメソッドがあります。学習以外に使用できない augmentedImageSource とは異なり、augmentedImageDatastore は学習と予測の両方に使用できます。
augmentedImageDatastore オブジェクトを作成するには、関数 augmentedImageDatastore (推奨) または関数 augmentedImageSource のいずれかを使用できます。
関数 augmentedImageSource は将来のリリースで削除される予定です。代わりに関数 augmentedImageDatastore を使用して augmentedImageDatastore を作成してください。
コードを更新するには、関数名 augmentedImageSource のインスタンスを 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)