主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

randomPatchExtractionDatastore

イメージまたはピクセルラベルイメージから2次元または3次元のランダムパッチを抽出するためのデータストア

説明

randomPatchExtractionDatastore。たとえば,入力デ,タストアには、image-to-image 回帰ネットワークの学習用のネットワーク入力と目的のネットワーク応答、またはセマンティック セグメンテーション ネットワークの学習用のグラウンド トゥルース イメージとピクセル ラベル データを含む 2 つのイメージ データストアを指定できます。

このオブジェクトを使用するには,深度学习工具箱™が必要です。

メモ

randomPatchExtractionDatastoreを学習データのソースとして使用する場合,データストアがエポックごとに各イメージから複数のランダムパッチを抽出するため,エポックごとに若干異なるデータセットが使用されます。エポックごとの学習パッチの実際の数は,学習PatchesPerImage倍です。メ,ジパッチはメモリに格納されません。

作成

説明

patchds = randompatchextracactiondatastore (ds1的ds2PatchSizeは,デ,タストアds1的内の入力デ,タとデ,タストアds2内の応答デタからサズがPatchSizeのランダムに配置されたパッチを抽出するデ,タストアを作成します。

patchds = randompatchextracactiondatastore (ds1的ds2PatchSize名称,值は,名前と値のペアを使用してPatchesPerImageDataAugmentationおよびDispatchInBackgroundプロパティを設定します。複数の名前と値のペアを指定できます。各プロパティ名を引用符で囲みます。

たとえば,randomPatchExtractionDatastore (imds1 imds2 50 PatchesPerImage, 40)は,imds1imds2内の各イメージから50行50列ピクセルの40個のパッチを無作為に生成するデータストアを作成します。

入力引数

すべて展開する

ネットワ,クへの学習用の入力を含む入力デ,タ。ImageDatastorePixelLabelDatastore(计算机视觉工具箱),またはTransformedDatastoreとして指定します。

PixelLabelDatastoreを指定する場合,计算机视觉工具箱™が必要です。

メモ

ImageDatastoreを使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができます。。

目的のネットワ,ク応答を表す応答デ,タ。ImageDatastorePixelLabelDatastore(计算机视觉工具箱),またはTransformedDatastoreとして指定します。TransformedDatastoreを指定した場合,基になるデ,タストアはImageDatastoreまたはPixelLabelDatastoreでなければなりません。

PixelLabelDatastoreを指定する場合,计算机视觉工具箱が必要です。

メモ

ImageDatastoreを使用すると,事前取得を使用してJPGまたはPNGイメージファイルのバッチ読み取りを行うことができます。。

プロパティ

すべて展開する

このプロパティは読み取り専用です。

パッチのサ@ @ズ。次のいずれかを指定します。

  • 2次元パッチの正の整数の2要素ベクトル。PatchSizeの形式は[r c]であり,rはパッチ内の行数を指定し,cは列数を指定します。

  • 3次元パッチの正の整数の3要素ベクトル。PatchSizeの形式は[r c p]であり,rはパッチ内の行数,cは列数,pは平面の数を指定します。

メ,ジあたりのランダムパッチの数。正の整数として指定します。

入力▪▪メ▪▪ジに適用される前処理。imageDataAugmenter(深度学习工具箱)オブジェクトまたは“没有”として指定します。DataAugmentation“没有”である場合,入力。

サ@ @ズ変更,回転および鏡映などのランダムな変換によってデ@ @タを拡張します。ネットワークで過適合が発生したり,学習データの正確な詳細が記憶されたりすることを防止するのに役立ちます。randomPatchExtractionDatastoreは各ペアの両方のパッチに同じランダムな変換を適用します。デタストアのデタは学習中にリアルタムで拡張されます。

DataAugmentationプロパティは3次元デタではサポトされていません。3次元デタを前処理するには,関数变换を使用します。

学習,予測,または分類中のバックグラウンドにおける観測値の送信。または真正的として指定します。バックグラウンドディスパッチを使用するには,并行计算工具箱™が必要です。

各バッチで返される観測値の数。デ,タストアの作成後にのみMiniBatchSizeの値を変更できます。学習,予測,および分類では,MiniBatchSizeプロパティはtrainingOptions(深度学习工具箱)で定義されたミニバッチサ@ @ズに設定されます。

このプロパティは読み取り専用です。

randomPatchExtractionDatastoreに含まれている観測値の合計数。観測値の数は1の学習エポックの長さです。

オブジェクト関数

结合 複数のデ,タストアのデ,タを統合
hasdata デ,タが読み取り可能かどうかを判別
numpartitions デ,タストアの区画数
分区 デ,タストアを分割する
partitionByIndex ンデックスに応じたrandomPatchExtractionDatastoreの分割
预览 デタストア内のデタのサブセットをプレビュ
randomPatchExtractionDatastoreからデ,タを読み取る
readall デ,タストアのすべてのデ,タの読み取り
readByIndex randomPatchExtractionDatastoreから▪▪ンデックスで指定されたデ▪▪タを読み取る
重置 デ,タストアの初期状態へのリセット
洗牌 デ,タストア内のデ,タのシャッフル
变换 デ,タストアの変換
isPartitionable デ,タストアが分割可能かどうかを判別
isShuffleable デ,タストアがシャッフル可能かどうかを判別

すべて折りたたむ

学習▪▪メ▪ジを含む▪▪メ▪ジデ▪タストアを作成します。この例のデタストアにはjpegカラメジが含まれています。

imageDir = fullfile(toolboxdir(“图片”),“imdata”);imds1 = imageDatastore(imageDir,“FileExtensions”“jpg”);

ガウスぼかしを適用することによってimds1内のメジを変換する2番目のデタストアを作成します。

Imds2 = transform(imds1,@(x)imgaussfilt(x,2));

[0, 90]度の範囲のランダムな角度でイメージを回転させ,イメージデータを水平にランダムに反転させるimageDataAugmenterを作成します。

augmenter = imageDataAugmenter(“RandRotation”90年[0],“RandXReflection”,真正的)
augmenter = imageDataAugmenter with properties: FillValue: 0 RandXReflection: 1 RandYReflection: 0 RandRotation: [0 90] RandScale: [1 1] RandXScale: [1 1] RandYScale: [1 1] RandXShear: [0 0] RandYShear: [0 0] RandXTranslation: [0 0] RandYTranslation: [0 0]

未処理の学習イメージと対応する平滑化された応答イメージから,サイズが100行100列のランダムパッチを抽出するrandomPatchExtractionDatastoreオブジェクトを作成します。DataAugmentationプロパティを設定して拡張オプションを指定します。

patchds = randompatchextracactiondatastore (imds1,imds2,[100 100],...“DataAugmentation”增量)
patchds = randompatchextracactiondatastore with properties: PatchesPerImage: 128 PatchSize: [100 100] DataAugmentation: [1×1 imageDataAugmenter] MiniBatchSize: 128 NumObservations: [] DispatchInBackground: 0

一連の拡張された▪▪メ▪ジパッチと対応する平滑化された▪▪メ▪ジパッチをプレビュ▪します。

Minibatch =预览(patchds);input = minibatch.InputImage;responses = minibatch.ResponseImage;Test = cat(2,输入,响应);蒙太奇(测试”,“大小”,[8 2])输入(左)和响应(右)

学習▪▪メ▪ジを含む▪▪メ▪ジデ▪タストアを作成します。

dataDir = fullfile(toolboxdir(“愿景”),“visiondata”“triangleImages”);imagadir = fullfile(dataDir,“trainingImages”);imds = imageDatastore(imageDir);

クラス名と関連するラベルidを定義します。次に,学習イメージのグラウンドトゥルースピクセルラベルを含むピクセルラベルデータストアを作成します。

classNames = [“三角形”“背景”];labelIDs = [255 0];labelDir = fullfile(dataDir,“trainingLabels”);pxds = pixelLabelDatastore(labelDir,classNames,labelIDs);

イメージと対応するピクセルラベルから32行32列ピクセルのランダムパッチを抽出するために,ランダムパッチ抽出データストアを作成します。オプションのPatchesPerImageプロパティを設定して,イメージとピクセルラベルの各ペアから512個のランダムパッチを抽出します。

patchds = randompatchextracactiondatastore (imds,pxds,32,...“PatchesPerImage”, 512);

セマンティックセグメンテ,ションのネットワ,クを作成します。

图层= [imageInputLayer([32 32 1]) convolution2dLayer(3,64,“填充”,1) reluLayer() maxPooling2dLayer(2,“步”, 2) convolution2dLayer (64,“填充”,1) reluLayer() transposedConv2dLayer(4,64,“步”2,“种植”,1) convolution2dLayer(1,2) softmaxLayer() pixelClassificationLayer()]
图层数组= 10x11”的形象输入32 x32x1图像zerocenter正常化2”64 3 x3的卷积,卷积步伐[1]和填充[1 1 1 1]3”ReLU ReLU 4”马克斯池2 x2马克斯池步(2 - 2)和填充[0 0 0 0]5“卷积64 3 x3的隆起与步幅[1]和填充1 1 1 1 6”ReLU ReLU 7“转置卷积64 4 x4转置运算与步幅[2 2]和输出裁剪[1]8”卷积2 1 x1旋转步[1]和填充[0 0 0 0]10”像素分类层交叉熵损失

学習オプションをセットアップします。学習時間を短縮するために,MaxEpochsを5に設定します。

选项= trainingOptions(“个”...“InitialLearnRate”1 e - 3,...“MaxEpochs”5,...“详细”、假);

ネットワ,クに学習をさせます。

net = trainNetwork(补丁,图层,选项);

ヒント

  • randomPatchExtractionDatastoreでは,入力デ,タストアに対する操作の出力から同じサ@ @ズの配列が返されると想定しています。

  • 入力デ,タストアがImageDatastoreの場合,その标签プロパティの値はrandomPatchExtractionDatastoreによって無視されます。

  • randomPatchExtractionDatastoreの2次元デ,タを可視化するには,デ,タのサブセットを表で返す関数预览を使用できます。関数蒙太奇を使用して、パッチをすべて同じ图に可視化します。たとえば,このコ,ドはrandomPatchExtractionDatastoreの▪▪メ▪▪ジパッチpatchdsのプレビュ,を表示します。

    Minibatch =预览(patchds);蒙太奇(minibatch.InputImage)

R2018bで導入