主要内容

RandompatchExtractionDataStore.

用于从图像或像素标签图像中提取随机2-D或3-D随机补丁的数据存储

描述

一个RandompatchExtractionDataStore.从两个基于图像的数据存储中提取相应的随机定位斑块。例如,输入数据存储可以是两个图像数据存储,其包含用于训练图像到图像回归网络的网络输入和期望的网络响应,或用于训练语义分割网络的地面真理图像和像素标签数据。

该对象要求您拥有深度学习工具箱™。

请注意

当你使用的时候RandompatchExtractionDataStore.作为训练数据的来源,数据存储为每个历元从每张图像中提取多个随机patch,这样每个历元使用的数据集略有不同。每个epoch的实际训练块数为训练图像的个数乘以PatchesPerImage.图像补丁不存储在内存中。

创建

描述

例子

patchds = randomPatchExtractionDatastore (ds1的ds2PatchSize创建一个数据存储区,提取随机定位的大小补丁PatchSize从数据存储中的输入数据ds1的和数据存储中的响应数据ds2

patchds = randomPatchExtractionDatastore (ds1的ds2PatchSize名称,值使用名称-值对来设置PatchesPerImageDataAugmentation, 和DispatchInBackground属性。可以指定多个名称-值对。将每个属性名用引号括起来。

例如,randomPatchExtractionDatastore (imds1 imds2 50 PatchesPerImage, 40)创建一个数据存储区,该数据存储在图像数据存储中的每个图像中随机生成40个大小50×50像素imds1imds2

输入参数

展开全部

输入数据包含对网络的训练输入,指定为ImageDatastorePixelLabelDatastore(计算机视觉工具箱), 或者变换adatastore.

指定A.PixelLabelDatastore需要计算机视觉工具箱™。

请注意

ImageDatastore允许使用预取批量读取JPG或PNG图像文件。如果使用自定义函数读取图像,则不会发生预取。

表示所需网络响应的响应数据,指定为ImageDatastorePixelLabelDatastore(计算机视觉工具箱), 或者变换adatastore..如果你指定变换adatastore.,则底层数据存储必须是ImageDatastore或者一个PixelLabelDatastore

指定A.PixelLabelDatastore需要计算机视觉工具箱。

请注意

ImageDatastore允许使用预取批量读取JPG或PNG图像文件。如果使用自定义函数读取图像,则不会发生预取。

特性

展开全部

此属性是只读的。

补丁大小,指定为如下之一。

  • 用于2-D斑块的正整数的2元素矢量。PatchSize有表单[rc),r指定行数和c指定补丁中的列数。

  • 3-D补丁的正整数的3元向量。PatchSize有表单[rcp),r指定行数,c指定列的数目,并且p指定补丁中平面的个数。

每个图像的随机补丁数,指定为正整数。

预处理应用于输入图像,指定为一个imageDataAugmenter(深度学习工具箱)对象或“没有”.当DataAugmentation“没有”,没有将预处理应用于输入图像。

使用随机转换(如调整大小、旋转和反射)来增加数据,以帮助防止网络过拟合和记忆训练数据的确切细节。的RandompatchExtractionDataStore.对每对中的两个patch应用相同的随机变换。数据存储在训练时实时增加数据。

DataAugmentation属性对于3-D数据不受支持。金宝app要对三维数据进行预处理,请使用转变函数。

在训练、预测或分类期间在背景中分派观测数据,指定为或者真的.要使用后台调度,必须具有并行计算工具箱™。

在每批中返回的观察数。的值可以更改MiniBatchSize只有在创建数据存储后才可以。用于训练、预测和分类MiniBatchSize属性设置为迷你批处理尺寸培训选项(深度学习工具箱)

此属性是只读的。

的观测总数RandompatchExtractionDataStore..观察人数是一个训练时代的长度。

对象的功能

结合 合并来自多个数据存储的数据
hasdata 确定是否可以读取数据
numpartitions. 数据存储分区数
划分 分区数据存储
partitionByIndex 划分RandompatchExtractionDataStore.根据指数
预览 预览数据存储中的数据子集
读取数据RandompatchExtractionDataStore.
readall 阅读数据存储中的所有数据
readbyex. 读取由index指定的数据RandompatchExtractionDataStore.
重置 将数据存储重置为初始状态
洗牌 在数据存储中洗牌数据
转变 变换数据存储
是artitionable. 确定数据存储是否可分区
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

创建包含训练图像的图像数据存储。此示例中的数据存储包含JPEG彩色图像。

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

创建第二个数据存储来转换图像imds1通过应用高斯模糊。

imds2 =变换(imds1 @ (x) imgaussfilt (x, 2));

创建一个imageDataAugmenter通过范围[0,90]度的随机角度旋转图像,并且随机地水平反射图像数据。

upmenter = imagedataAugmenter('randroatation'90年[0],“RandXReflection”,真的)
增强器= imageDataAugmenter with properties: 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]

创建一个RandompatchExtractionDataStore.从未处理的训练图像和相应的平滑响应图像中提取大小100-100的随机斑块的对象。通过设置来指定增强选项DataAugmentation财产。

PATCHDS = RANDOMPHATCHENEXTRACTNDATASTORE(IMDS1,IMDS2,[100 100],......“DataAugmentation”增量)
patchds = randompatchextracactiondatastore with properties: patchperimage: 128 PatchSize: [100 100] DataAugmentation: [1×1 imageDataAugmenter] MiniBatchSize: 128 NumObservations: [] DispatchInBackground: 0

预览一组增强图像补丁和相应的平滑图像补丁。

minibatch =预览(patchds);输入= minibatch.InputImage;反应= minibatch.ResponseImage;测试=猫(2输入反应);蒙太奇(测试”,'尺寸', 2[8])标题('输入(左)和响应(右)'

创建包含训练图像的图像数据存储。

dataDir = fullfile (toolboxdir (“愿景”),'VisionData'“triangleImages”);imageDir = fullfile (dataDir,“trainingImages”);imd = imageDatastore (imageDir);

定义类名及其关联的标签id。然后,为训练图像创建包含ground truth像素标签的像素标签数据存储。

ClassNames = [“三角形”“背景”];标签id = [255 0];labelDir = fullfile (dataDir,'培训标签');一会,pxds = pixelLabelDatastore (labelDir labelIDs);

创建一个随机补丁提取数据存储,以从图像和相应的像素标签中提取大小32乘32像素的随机斑块。设置可选PatchesPerImage属性,从每个图像和像素标签对中提取512个随机patch。

PATCHDS = RANDOMPHATCHEXTRACTNDATASTORE(IMDS,PXDS,32,......“PatchesPerImage”,512);

创建一个用于语义分割的网络。

图层= [imageInputlayer([32 32 1])卷积2dlayer(3,64,'填充'(1) reluLayer) maxPooling2dLayer (2,“步”,2)卷积2dlayer(3,64,'填充',1)Rubulayer()TransposedConv2dlayer(4,64,“步”2,“种植”,1)卷积2dlayer (1,2) softmaxLayer() pixelClassificationLayer()]
图层= 10x1层阵列,带有层数:1''图像输入32x32x1图像与'zerocenter'归一化2'''卷积64 3x3卷积与步幅[1 1]和padding [1 1 1 1] 3''Relu Relu 4''Max汇集2x2 max汇集步进[2 2]和填充[0 0 0 0] 5''卷积64 3x3卷曲与步幅[1 1]和填充[1 1 1 1] 6''Relu Relu 7''转置卷积644x4转置卷绕升级[2 2]和输出裁剪[1 1] 8''卷积2 1x1卷曲与步幅[1 1]和填充[0 0 0 0] 9''softmax softmax 10''像素分类层交叉 -熵损失

设置培训选项。减少培训时间,设置MaxEpochs5。

选项=培训选项(“个”......“InitialLearnRate”,1e-3,......'maxepochs'5,......“详细”,错误的);

培训网络。

net = trainnetwork(patchds,图层,选项);

提示

  • RandompatchExtractionDataStore.的输出输入数据存储上的操作返回相同大小的阵列。

  • 如果输入数据存储为ImageDatastore,然后是its中的值标签属性忽略RandompatchExtractionDataStore.

  • 将二维数据可视化RandompatchExtractionDataStore.,你可以使用预览函数,返回表中的数据子集。通过使用通过使用相同图形的所有补丁可视化蒙太奇函数。例如,此代码显示来自a的图像修补程序的预览RandompatchExtractionDataStore.被称为包皮

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

介绍了R2018b