Импорт данных в Deep Network Designer

Можно импортировать и визуализировать данные обучения и валидации в Deep Network Designer. Используя это приложение, вы можете:

  • Импортируйте объекты datastore для обучения. После импорта Deep Network Designer отображает предпросмотр данных. Для получения дополнительной информации см. раздел Импорт данных.

  • Импортируйте обучающие данные для задач классификации изображений из ImageDatastore объект или папка, содержащая подпапки изображений по классам. Можно также выбрать встроенные опции для увеличения обучающих изображений во время обучения. Для получения дополнительной информации смотрите Увеличение изображения.

  • Импортируйте данные валидации из объекта datastore. Для классификации изображений можно также выбрать данные валидации из папки, содержащей подпапки изображений для каждого класса, или выбрать разделение данных валидации из обучающих данных. Для получения дополнительной информации см. раздел «Данные валидации».

Для получения дополнительной информации о наборах данных, которые можно использовать, чтобы начать глубокое обучение, смотрите Наборы данных для глубокого обучения. Для получения дополнительной информации о построении и использовании объектов datastore для применений глубокого обучения, смотрите Datastores for Deep Learning.

Импорт данных

В Deep Network Designer можно импортировать данные классификации изображений из datastore изображений или папки, содержащей подпапки изображений из каждого класса. Можно также импортировать и обучить любой объект datastore, который работает с trainNetwork функция. Выберите метод импорта в зависимости от типа используемого datastore.

Импортируйте ImageDatastore ОбъектИмпорт любого другого объекта Datastore (Не Рекомендуемый для ImageDatastore)

Выберите Import Data > Import Image Data.

Выберите Import Data > Import Datastore.

После импорта Deep Network Designer обеспечивает предварительный просмотр импортированных данных, чтобы можно было проверить, как ожидалось, перед обучением. Для данных классификации изображений Deep Network Designer также отображает гистограмму меток классов и случайный выбор изображений из импортированных данных. Можно также выбрать просмотр случайных изображений, принадлежащих определенному классу.

Импорт данных по задачам

ЗадачаТип данныхМетод импорта данныхПример визуализации
Классификация изображений

Папка с подпапками, содержащими изображения для каждого класса. Метки классов извлекаются из имен подпапок.

Для получения примера см. Передачу обучения с Deep Network Designer.

Выберите Import Data > Import Image Data.

Можно выбрать опции увеличения и задать данные валидации с помощью диалогового окна Импорт изображений (Import Image Data).

После импорта Deep Network Designer отображает гистограмму меток классов. Вы также можете увидеть случайные наблюдения от каждого класса.

Deep Network Designer with imported image data.

ImageDatastore

Для примера создайте изображение datastore, содержащее данные о цифрах.

dataFolder = fullfile(toolboxdir('nnet'),'nndemos', ... 
'nndatasets','DigitDataset');

imds = imageDatastore(dataFolder, ...
    'IncludeSubfolders',true, ...
    'LabelSource','foldernames');
Для получения дополнительной информации смотрите Создание Простой сети классификации изображений с использованием Deep Network Designer.

AugmentedImageDatastore

Для примера создайте дополненное изображение datastore содержащее данные о цифрах.

dataFolder = fullfile(toolboxdir('nnet'),'nndemos', ... 
'nndatasets','DigitDataset');

imds = imageDatastore(dataFolder, ...
    'IncludeSubfolders',true, ...
    'LabelSource','foldernames');

imageAugmenter = imageDataAugmenter( ...
    'RandRotation',[1,2]);
augimds = augmentedImageDatastore([28 28],imds, ...
'DataAugmentation',imageAugmenter);

augimds = shuffle(augimds);
Для получения дополнительной информации смотрите Передача обучения с использованием предварительно обученной сети.

Выберите Import Data > Import Datastore.

Можно задать данные валидации в диалоговом окне Import Datastore.

После импорта Deep Network Designer показывает предварительный просмотр первых пяти наблюдений в datastore.

Deep Network Designer with imported augmented image datastore.

Семантическая сегментация

CombinedDatastore

Для примера объедините ImageDatastore и a PixelLabelDatastore (Computer Vision Toolbox).

dataFolder  = fullfile(toolboxdir('vision'), ...
'visiondata','triangleImages');

imageDir = fullfile(dataFolder,'trainingImages');
labelDir = fullfile(dataFolder,'trainingLabels');

imds = imageDatastore(imageDir);
classNames = ["triangle","background"];
labelIDs   = [255 0];

pxds = pixelLabelDatastore(labelDir,classNames,labelIDs);
cds = combine(imds,pxds);

Можно также объединить ImageDatastore и a PixelLabelDatastore в pixelLabelImageDatastore (Computer Vision Toolbox).

pximds = pixelLabelImageDatastore(imds,pxds);
Дополнительные сведения о создании и обучении семантической сети сегментации см. в разделе Создание простой семантической сети сегментации в Deep Network Designer.

Выберите Import Data > Import Datastore.

Можно задать данные валидации в диалоговом окне Import Datastore.

После импорта Deep Network Designer показывает предварительный просмотр первых пяти наблюдений в datastore.

Deep Network Designer with imported semantic segmentation datastore.

Регрессия изображение-изображение

CombinedDatastore

Для примера объедините шумные входы изображения и первозданные выходные изображения, чтобы создать данные, подходящие для регрессии изображения к изображению.

dataFolder = fullfile(toolboxdir('nnet'),'nndemos', ... 
'nndatasets','DigitDataset');

imds = imageDatastore(dataFolder, ...
    'IncludeSubfolders',true, ....
    'LabelSource','foldernames');

imds = transform(imds,@(x) rescale(x));
imdsNoise = transform(imds,@(x) {imnoise(x,'Gaussian',0.2)});

cds = combine(imdsNoise,imds);
cds = shuffle(cds);
Для получения дополнительной информации о обучении сети регрессии изображение-изображение см. Раздел «Регрессия изображение-изображение» в Deep Network Designer.

Выберите Import Data > Import Datastore.

Можно задать данные валидации в диалоговом окне Import Datastore.

После импорта Deep Network Designer показывает предварительный просмотр первых пяти наблюдений в datastore.

Deep Network Designer with imported combined datastore.

Регресс

CombinedDatastore

Создайте данные, подходящие для настройки регрессионных сетей, путем объединения объектов datastore массива.

[XTrain,~,YTrain] = digitTrain4DArrayData;

ads = arrayDatastore(XTrain,'IterationDimension',4, ...
 'OutputType','cell');
adsAngles = arrayDatastore(YTrain,'OutputType','cell');

cds = combine(ads,adsAngles);

Для получения дополнительной информации о обучении регрессионной сети см. Train сверточной нейронной сети для регрессии».

Выберите Import Data > Import Datastore.

Можно задать данные валидации в диалоговом окне Import Datastore.

После импорта Deep Network Designer показывает предварительный просмотр первых пяти наблюдений в datastore.

Deep Network Designer with imported combined array datastores.

Последовательности и временные ряды

Пользовательский datastore

Для получения примера смотрите Train сеть с использованием пользовательского мини-пакетного Datastore для данных последовательности.

Выберите Import Data > Import Datastore.

Можно задать данные валидации в диалоговом окне Import Datastore.

После импорта Deep Network Designer показывает предварительный просмотр первых пяти наблюдений в datastore.

Deep Network Designer with imported custom sequence datastore.

Другие расширенные рабочие процессы (такие как числовая функция ввод, данная , которая не помещаются в память,, обработка изображений и обработка звука и речи)

Datastore

Для других расширенных рабочих процессов используйте подходящий объект datastore. Для примера, пользовательского datastore, randomPatchExtractionDatastore (Image Processing Toolbox), denoisingImageDatastore (Image Processing Toolbox), или audioDatastore (Audio Toolbox). Для получения дополнительной информации смотрите Datastores для глубокого обучения.

Для примера создайте denoisingImageDatastore объект с использованием Image Processing Toolbox™.

dataFolder = fullfile(toolboxdir('images'),'imdata');

imds = imageDatastore(dataFolder,'FileExtensions',{'.jpg'});

dnds = denoisingImageDatastore(imds,...
    'PatchesPerImage',512,...
    'PatchSize',50,...
    'GaussianNoiseLevel',[0.01 0.1]);

Выберите Import Data > Import Datastore.

Можно задать данные валидации в диалоговом окне Import Datastore.

После импорта Deep Network Designer показывает предварительный просмотр первых пяти наблюдений в datastore.

Deep Network Designer with imported denoising image datastore.

Увеличение изображения

Для задач классификации изображений Deep Network Designer предоставляет простые опции увеличения для применения к обучающим данным. Откройте диалоговое окно Import Image Data, выбрав Import Data > Import Image Data. Можно выбрать опции, чтобы применить к обучающим данным случайную комбинацию операций отражения, поворотаперемасштабирования и перемещения.

Можно эффективно увеличить объем обучающих данных, применяя рандомизированное увеличение к своим данным. Увеличение также позволяет вам обучать сети, чтобы быть инвариантными к искажениям в данных изображения. Для примера можно добавить рандомизированные повороты к входным изображениям, так что сеть инвариантна наличию вращения на вход изображениях. Увеличение количества данных также может помочь предотвратить сверхподбор кривой сети и запоминание точных деталей обучающих изображений. Когда вы используете увеличение данных, одна случайным образом дополненная версия каждого изображения используется в каждую эпоху обучения, где эпоха является полным проходом алгоритма настройки по всему набору обучающих данных. Поэтому каждая эпоха использует несколько другой набор данных, но фактическое количество обучающих изображений в каждой эпохе не меняется. Для получения дополнительной информации смотрите Создать и исследовать Datastore для классификации изображений.

Чтобы выполнить более общие и сложные операции предварительной обработки изображений, чем те, которые предлагаются Deep Network Designer, используйте TransformedDatastore и CombinedDatastore объекты. Для импорта CombinedDatastore и TransformedDatastore Объектами выберите Import Data > Import Datastore.

Для получения дополнительной информации об увеличении изображения см. Раздел «Предварительная обработка изображений для глубокого обучения».

Данные валидации

В Deep Network Designer можно импортировать данные валидации для использования во время обучения. Данные валидации являются данными, которые сеть не использует для обновления весов и смещений во время обучения. Поскольку сеть напрямую не использует эти данные, она полезна для оценки истинной точности сети во время обучения. Можно контролировать метрики валидации, такие как потеря и точность, чтобы оценить, является ли сеть избыточной или недостроенной, и настроить опции обучения по мере необходимости. Для примера, если потеря валидации намного выше, чем потеря обучения, то сеть может оказаться избыточной.

Для получения дополнительной информации об улучшении точности нейронных сетей для глубокого обучения смотрите Deep Learning Советов и Tricks.

В Deep Network Designer можно импортировать данные валидации:

  • Из datastore в рабочей области.

  • Из папки, содержащей подпапки изображений для каждого класса (только данные классификации изображений).

  • Путем разделения фрагмента обучающих данных для использования в качестве данных валидации (только данные классификации изображений).

Разделение данных валидации из обучающих данных

При разделении данных валидации из обучающих данных Deep Network Designer разделяет процент обучающих данных из каждого класса. Например, предположим, что у вас есть набор данных с двумя классами, кошкой и собакой, и вы решите использовать 30% обучающих данных для валидации. Deep Network Designer использует последние 30% изображений с меткой «cat» и последние 30% с меткой «dog» в качестве набора валидации.

Вместо использования последних 30% обучающих данных в качестве данных валидации можно выбрать случайное выделение наблюдений наборам обучения и валидации путем установки флажка Randomize в диалоговом окне Импорт изображений (Import Image Data). Рандомизация изображений может улучшить точность сетей, обученных на данных, хранящихся в нерандомном порядке. Для примера набор данных цифр состоит из 10 000 синтетических полутоновых изображений рукописных цифр. Этот набор данных имеет базовый порядок, в котором изображения с одним и тем же стилем почерка появляются рядом друг с другом в каждом классе. Ниже приведен пример отображения.

Рандомизация гарантирует, что при разделении данных изображения перетасовываются так, что наборы обучения и валидации содержат случайные изображения из каждого класса. Использование данных обучения и валидации, которые состоят из аналогичного распределения изображений, может помочь предотвратить сверхподбор кривой. Не рандомизация данных гарантирует, что данные обучения и валидации разделяются каждый раз, и может помочь улучшить воспроизводимость результатов. Для получения дополнительной информации см. splitEachLabel.

См. также

| | | | |

Похожие темы