主要内容

导入数据到深度网络设计器

您可以在深度网络设计器中导入并可视化培训和验证数据。使用这个应用程序,你可以:

  • 导入用于训练的数据存储对象。导入后,深度网络设计器将显示数据的预览。有关更多信息,请参见导入数据

  • 为图像分类问题导入训练数据ImageDatastore对象或包含每个类的图像子文件夹的文件夹。您还可以选择内置选项来在训练期间增强训练图像。有关更多信息,请参见图像增强

  • 从数据存储对象导入验证数据。对于图像分类,您还可以从包含每个类的图像子文件夹的文件夹中选择验证数据,或者选择将验证数据与训练数据分开。有关更多信息,请参见验证数据

有关可以用于开始深度学习的数据集的更多信息,请参见深度学习的数据集.有关为深度学习应用程序构造和使用数据存储对象的更多信息,请参见用于深度学习的数据存储

导入数据

在Deep Network Designer中,您可以从图像数据存储或包含每个类的图像子文件夹的文件夹中导入图像分类数据。的数据存储对象也可以导入和训练trainNetwork函数。根据所使用的数据存储类型选择导入方法。

进口ImageDatastore对象 导入任何其他数据存储对象(不推荐使用ImageDatastore

选择导入数据>导入图像数据

选择导入数据>导入数据存储

导入后,Deep Network Designer提供导入数据的预览,以便在培训之前检查数据是否符合预期。对于图像分类数据,Deep Network Designer还显示类标签的直方图和从导入数据中随机选择的图像。您还可以选择查看属于特定类的随机图像。

按任务导入数据

任务 数据类型 数据导入方法 可视化例子
图像分类

文件夹中包含每个类的图像的子文件夹。类标签来自子文件夹名。

例如,请参见使用深度网络设计师进行迁移学习

选择导入数据>导入图像数据

您可以使用“导入图像数据”对话框选择增强选项并指定验证数据。

导入后,深度网络设计器显示类标签的直方图。您还可以看到每个类的随机观察结果。

深度网络设计器与导入的图像数据。

ImageDatastore

例如,创建包含数字数据的图像数据存储。

dataFolder = fullfile (toolboxdir (“nnet”),“nndemos”...“nndatasets”“DigitDataset”);imd = imageDatastore (dataFolder,...“IncludeSubfolders”,真的,...“LabelSource”“foldernames”);
有关更多信息,请参见使用深度网络设计器创建简单的图像分类网络

AugmentedImageDatastore

例如,创建一个包含数字数据的扩充图像数据存储。

dataFolder = fullfile (toolboxdir (“nnet”),“nndemos”...“nndatasets”“DigitDataset”);imd = imageDatastore (dataFolder,...“IncludeSubfolders”,真的,...“LabelSource”“foldernames”);imageAugmenter = imageDataAugmenter (...“RandRotation”[1,2]);augimds = augmentedImageDatastore([28 28],imds,...“DataAugmentation”, imageAugmenter);augimds = shuffle (augimds);
有关更多信息,请参见使用预训练网络进行迁移学习

选择导入数据>导入数据存储

您可以在“导入数据存储”对话框中指定验证数据。

导入后,深度网络设计器显示数据存储中的前5个观察结果的预览。

带有导入的增强图像数据存储的深度网络设计器。

语义分割

CombinedDatastore

例如,组合anImageDatastore和一个PixelLabelDatastore(计算机视觉工具箱)

dataFolder = fullfile (toolboxdir (“愿景”),...“visiondata”“triangleImages”);imageDir = fullfile (dataFolder,“trainingImages”);labelDir = fullfile (dataFolder,“trainingLabels”);imd = imageDatastore (imageDir);一会= [“三角形”“背景”];标签id = [255 0];一会,pxds = pixelLabelDatastore (labelDir labelIDs);cd =结合(imd, pxds);

你也可以组合anImageDatastore和一个PixelLabelDatastore在一个pixelLabelImageDatastore(计算机视觉工具箱)

pxds pximds = pixelLabelImageDatastore (imd);
有关创建和训练语义分割网络的更多信息,请参见在深度网络设计器中创建简单的语义分割网络

选择导入数据>导入数据存储

您可以在“导入数据存储”对话框中指定验证数据。

导入后,深度网络设计器显示数据存储中的前5个观察结果的预览。

带有导入语义分割数据存储的深度网络设计器。

Image-to-image回归

CombinedDatastore

例如,将有噪声的输入图像和原始的输出图像结合起来,以创建适合于图像到图像回归的数据。

dataFolder = fullfile (toolboxdir (“nnet”),“nndemos”...“nndatasets”“DigitDataset”);imd = imageDatastore (dataFolder,...“IncludeSubfolders”,真的,...“LabelSource”“foldernames”);Imds = transform(Imds,@(x) rescale(x));imdsNoise = transform(imds,@(x) {imdsNoise (x,“高斯”, 0.2)});cd =结合(imdsNoise, imd);cd = shuffle (cds);
有关训练图像到图像回归网络的更多信息,请参见深度网络设计器中的图像到图像回归

选择导入数据>导入数据存储

您可以在“导入数据存储”对话框中指定验证数据。

导入后,深度网络设计器显示数据存储中的前5个观察结果的预览。

带导入组合数据存储的深度网络设计器。

回归

CombinedDatastore

通过组合数组数据存储对象来创建适合于训练回归网络的数据。

[XTrain ~, YTrain] = digitTrain4DArrayData;广告= arrayDatastore (XTrain,“IterationDimension”4...“OutputType”“细胞”);adsAngles = arrayDatastore (YTrain,“OutputType”“细胞”);cd =结合(广告,adsAngles);

有关训练回归网络的更多信息,请参见训练卷积神经网络用于回归

选择导入数据>导入数据存储

您可以在“导入数据存储”对话框中指定验证数据。

导入后,深度网络设计器显示数据存储中的前5个观察结果的预览。

带导入组合阵列数据存储的深层网络设计器。

序列和时间序列

自定义数据存储

例如,请参见列车网络使用自定义迷你批处理数据存储序列数据

选择导入数据>导入数据存储

您可以在“导入数据存储”对话框中指定验证数据。

导入后,深度网络设计器显示数据存储中的前5个观察结果的预览。

带有导入自定义序列数据存储的深度网络设计器。

其他扩展的工作流程(如数字特征输入、内存不足数据、图像处理以及音频和语音处理)

数据存储

对于其他扩展工作流,请使用合适的数据存储对象。例如,自定义数据存储,randomPatchExtractionDatastore(图像处理工具箱)denoisingImageDatastore(图像处理工具箱),或audioDatastore(音频工具箱).有关更多信息,请参见用于深度学习的数据存储

例如,创建一个denoisingImageDatastore对象使用图像处理工具箱™。

dataFolder = fullfile (toolboxdir (“图片”),“imdata”);imd = imageDatastore (dataFolder,“FileExtensions”, {“jpg”});dnd = denoisingImageDatastore (imd,...“PatchesPerImage”, 512,...“PatchSize”, 50岁,...“GaussianNoiseLevel”[0.01 - 0.1]);

选择导入数据>导入数据存储

您可以在“导入数据存储”对话框中指定验证数据。

导入后,深度网络设计器显示数据存储中的前5个观察结果的预览。

深度网络设计器与导入去噪图像数据存储。

图像增强

对于图像分类问题,Deep Network Designer提供了简单的增强选项来应用于训练数据。通过选择打开导入图像数据对话框导入数据>导入图像数据.您可以选择将反射、旋转、缩放和平移操作的随机组合应用到训练数据。

通过对数据应用随机增强,可以有效地增加训练数据的数量。增强还使您能够训练网络以对图像数据的畸变保持不变。例如,可以向输入图像添加随机旋转,这样网络就不会因输入图像的旋转而改变。数据增强还可以帮助防止网络过度拟合和记忆训练图像的确切细节。当您使用数据增强时,每个图像的随机增强版本将在训练的每个epoch期间使用,其中epoch是训练算法对整个训练数据集的完整遍历。因此,每个epoch使用的数据集略有不同,但每个epoch中训练图像的实际数量没有变化。有关更多信息,请参见创建和探索图像分类数据存储

要执行比Deep Network Designer提供的更通用和更复杂的图像预处理操作,请使用TransformedDatastoreCombinedDatastore对象。进口CombinedDatastoreTransformedDatastore对象,选择导入数据>导入数据存储

有关图像增强的更多信息,请参见深度学习的图像预处理

验证数据

在深度网络设计器中,您可以导入验证数据以在培训期间使用。验证数据是网络在训练期间没有用来更新权重和偏差的数据。由于网络并不直接使用这些数据,因此在训练过程中评估网络的真实准确性是很有用的。您可以监控验证指标(如损失和准确性),以评估网络是过拟合还是过拟合,并根据需要调整培训选项。例如,如果验证损失远高于训练损失,那么网络可能是过拟合的。

有关提高深度学习网络准确性的更多信息,请参见深度学习技巧

在Deep Network Designer中,您可以导入验证数据:

  • 从工作区中的数据存储中获取。

  • 从包含每个类的图像子文件夹的文件夹(仅限图像分类数据)。

  • 通过分割一部分训练数据用作验证数据(仅限图像分类数据)。

从训练数据中分离验证数据

当从训练数据中分离验证数据时,Deep Network Designer从每个类中分离一定比例的训练数据。例如,假设您有一个包含两个类(cat和dog)的数据集,并选择使用30%的训练数据进行验证。Deep Network Designer使用带有“猫”标签的最后30%和带有“狗”标签的最后30%作为验证集。

不是使用最后30%的训练数据作为验证数据,您可以选择通过选择随机化复选框。随机化图像可以提高对非随机顺序存储的数据进行训练的网络的准确性。例如,数字数据集由10,000个手写数字的合成灰度图像组成。这个数据集有一个基本的顺序,在这个顺序中,具有相同笔迹风格的图像在每个类中紧挨着出现。下面是显示的一个例子。

随机化可以确保在分割数据时对图像进行洗牌,以便训练和验证集包含来自每个类的随机图像。使用由类似分布的图像组成的训练和验证数据可以帮助防止过拟合。不随机化数据可以确保训练和验证数据每次都是相同的,并有助于提高结果的重现性。有关更多信息,请参见splitEachLabel

另请参阅

|||||

相关的话题