imageDataAugmenter
イメージデータ拡張の構成
説明
イメージデータオーグメンターは,サイズ変更,回転,反転など,イメージ拡張の一連の前処理オプションを構成します。
imageDataAugmenter
は,augmentedImageDatastore
で使用され,拡張。詳細にいては,ランダムな幾何学的変換での学習用の▪▪メ▪▪ジの拡張を参照してください。
作成
プロパティ
FillValue
- - - - - -塗りぶしの値
数値スカラ|数値ベクトル
リサンプリング時に範囲外の点の定義に使用される塗りぶしの値。数値スカラ,または数値ベクトルとして指定します。
拡張メジが単一チャネルの場合,
FillValue
はスカラ,でなければなりません。拡張メジがマルチチャネルの場合,
FillValue
にはスカラ,または入力メジのチャネル数に等しい長さのベクトルを指定できます。たとえば,入力メジがRGBメジの場合,FillValue
には長さが3のベクトルを指定できます。
グレ,スケ,ル,0
です。分类:メ,ジの場合,既定の塗り,ぶしの値は' <定义> '
ラベルで,trainNetwork
は学習時に塗りぶされたピクセルを無視します。
例:128
RandXReflection
- - - - - -ランダムな反転
假
(既定値) |真正的
左右方向のランダムな反転。逻辑スカラ,として指定します。RandXReflection
が真正的
(1
50%。RandXReflection
が假
(0
)の場合,@ @メ,@ @ジは反転しません。
RandYReflection
- - - - - -ランダムな反転
假
(既定値) |真正的
上下方向のランダムな反転。逻辑スカラ,として指定します。RandYReflection
が真正的
(1
50%。RandYReflection
が假
(0
)の場合,@ @メ,@ @ジは反転しません。
RandRotation
- - - - - -回転の範囲
[0 0]
(既定値) |2要素の数値ベクトル|関数ハンドル
入力メジに適用される回転の範囲(度単位)。次のいずれかに指定します。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。回転角度は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、回転角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して回転角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張。
例:45 [-45]
RandScale
- - - - - -一様スケ,リングの範囲
[1]
(既定値) |2要素の数値ベクトル|関数ハンドル
入力メジに適用される一様(等方性)スケリングの範囲。次のいずれかに指定します。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。スケ,ル係数は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、スケール係数を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用してスケール係数を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張メジはスケリングされません。
例:(0.5 - 4)
RandXScale
- - - - - -水平方向のスケ,リングの範囲
[1]
(既定値) |正の数値の2要素ベクトル|関数ハンドル
入力メジに適用される水平方向のスケリングの範囲。次のいずれかに指定します。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。水平方向のスケ,ル係数は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、水平方向のスケール係数を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向のスケール係数を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張メジは水平方向にスケリングされません。
メモ
RandScale
を指定すると,imageDataAugmenter
がRandXScale
の値を無視します。
例:(0.5 - 4)
RandYScale
- - - - - -垂直方向のスケ,リングの範囲
[1]
(既定値) |正の数値の2要素ベクトル|関数ハンドル
入力メジに適用される垂直方向のスケリングの範囲。次のいずれかに指定します。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。垂直方向のスケ,ル係数は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、垂直方向のスケール係数を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向のスケール係数を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張メジは垂直方向にスケリングされません。
メモ
RandScale
を指定すると,imageDataAugmenter
がRandYScale
の値を無視します。
例:(0.5 - 4)
RandXShear
- - - - - -水平方向のせん断の範囲
[0 0]
(既定値) |2要素の数値ベクトル|関数ハンドル
入力▪▪メ▪▪ジに適用される水平方向のせん断の範囲。次のいずれかに指定します。せん断は角度として度単位で測定され,範囲は(- 90,90)になります。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。水平方向のせん断角度は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、水平方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張。
例:45 [0]
RandYShear
- - - - - -垂直方向のせん断の範囲
[0 0]
(既定値) |2要素の数値ベクトル|関数ハンドル
入力▪▪メ▪▪ジに適用される垂直方向のせん断の範囲。次のいずれかに指定します。せん断は角度として度単位で測定され,範囲は(- 90,90)になります。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。垂直方向のせん断角度は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、垂直方向のせん断角度を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向のせん断角度を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張。
例:45 [0]
RandXTranslation
- - - - - -水平方向の平行移動の範囲
[0 0]
(既定値) |2要素の数値ベクトル|関数ハンドル
入力▪▪メ▪▪ジに適用される水平方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。水平方向の平行移動距離は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、水平方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して水平方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張。
例:5 [5]
RandYTranslation
- - - - - -垂直方向の平行移動の範囲
[0 0]
(既定値) |2要素の数値ベクトル|関数ハンドル
入力▪▪メ▪▪ジに適用される垂直方向の平行移動の範囲。次のいずれかに指定します。平行移動距離はピクセル単位で測定します。
2要素の数値ベクトル。2番目の要素は最初の要素以上でなければなりません。垂直方向の平行移動距離は,指定区間内の連続一様分布からランダムに選択されます。
関数ハンドル。関数は入力引数を受け入れず、垂直方向の平行移動距離を数値スカラーとして返さなければなりません。関数ハンドルを使用して、重なっていない区間から、または一様ではない確率分布を使用して垂直方向の平行移動距離を選択します。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
既定では,拡張。
例:5 [5]
オブジェクト関数
增加 |
複数の▪▪メ▪▪ジに対する同一のランダム変換の適用 |
例
の作成
学習前にメジを前処理するを作成します。このオーグメンターは,範囲[0,360]度のランダムな角度でイメージを回転させ,範囲[0.5,1]のランダムなスケール係数でイメージのサイズを変更します。
augmenter = imageDataAugmenter(...“RandRotation”360年[0],...“RandScale”(0.5 - 1))
augmenter = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [0 360] RandScale: [0.5000 1] RandXScale: [1 1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [0 0] RandYTranslation: [0 0]
タストアを作成します。拡張イメージデータストアには,標本データ,ラベル,および出力イメージサイズも必要です。
[XTrain,YTrain] = digitTrain4DArrayData;imageSize = [56 56 1];auimds = augmentedimagedastore (imageSize,XTrain,YTrain,“DataAugmentation”增量)
auimds = augmentedImageDatastore with properties: NumObservations: 5000 MiniBatchSize: 128 DataAugmentation: [1x1 imageDataAugmenter] color预处理:'none' OutputSize: [56 56] OutputSizeMode: 'resize' DispatchInBackground: 0
。
Minibatch =预览(auimds);imshow (imtile (minibatch.input));
同じメジセットに適用された別のランダム変換をプレビュします。
Minibatch =预览(auimds);imshow (imtile (minibatch.input));
拡張メジを使用したネットワクの学習
拡張メジデタを使用して,畳み込みニュラルネットワクに学習させます。データ拡張は,ネットワークで過適合が発生したり,学習イメージの正確な詳細が記憶されたりすることを防止するのに役立ちます。
標本デ,タを読み込みます。標本デ,タは,手書き数字の合成,メ,ジで構成されています。
[XTrain,YTrain] = digitTrain4DArrayData;
digitTrain4DArrayData
は,数字の学習セットを4次元配列デ,タとして読み込みます。XTrain
は,28 × 28 × 1 × 5000の配列です。
28はメジの高さと幅。
1はチャネルの数。
5000は手書き数字の合成メジの数。
YTrain
は,各観測値のラベルが含まれる分类ベクトルです。
ネットワクの検証用に1000個のメジを残しておきます。
idx = randperm(size(XTrain,4),1000);XValidation = XTrain(:,:,:,idx);XTrain(:,:,:,idx) = [];YValidation = YTrain(idx);YTrain(idx) = [];
サズ変更,回転,平行移動,反転など,メジ拡張の前処理オプションを指定するimageDataAugmenter
オブジェクトを作成します。イメージを,水平方向および垂直方向に最大3ピクセルまでのランダムな平行移動をさせたり,最大20度までの回転をさせたりします。
imageAugmenter = imageDataAugmenter(...“RandRotation”(-20年,20),...“RandXTranslation”3 [3],...“RandYTranslation”3 [3])
imageAugmenter = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 0 RandYReflection: 0 RandRotation: [-20 20] RandScale: [1 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [-3 3] RandYTranslation: [-3 3]
ネットワ,ク学習に使用するaugmentedImageDatastore
オブジェクトを作成し,。学習中,デ:ズ変更を行います。デ,タストアは;trainNetwork
は,ネットワクパラメタを更新した後,その拡張メジを破棄します。
imageSize = [28 28 1];augimds = augmentedimagedastore (imageSize,XTrain,YTrain,“DataAugmentation”, imageAugmenter);
畳み込みニュ,ラルネットワ,クア,キテクチャを指定します。
图层= [imageInputLayer(imageSize)卷积2dlayer (3,8,“填充”,“相同”maxPooling2dLayer(2,“步”2) convolution2dLayer(16日“填充”,“相同”maxPooling2dLayer(2,“步”32岁的,2)convolution2dLayer (3“填充”,“相同”batchNormalizationLayer reluLayer fullyConnectedLayer(10) softmaxLayer classificationLayer];
モ,メンタム項付き確率的勾配降下法の学習オプションを指定します。
opts = trainingOptions(“个”,...“MaxEpochs”15岁的...“洗牌”,“every-epoch”,...“阴谋”,“训练进步”,...“详细”假的,...“ValidationData”, {XValidation, YValidation});
ネットワ,クに学習をさせます。検証。
net = trainNetwork(augimds,layers,opts);
ヒント
サンプルメジに適用された変換をプレビュするには,関数
增加
を使用します。学習中にメジ拡張を実行するには,
augmentedImageDatastore
を作成し,名前と値のペア“DataAugmentation”
とimageDataAugmenter
を使用して前処理オプションを指定します。拡張メジデタストアは学習デタにランダム変換を自動的に適用します。
バ,ジョン履歴
R2017bで導入
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。