Импортируйте данные в Deep Network Designer

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

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

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

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

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

Импортируйте данные

В 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 и 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 и 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);

Для получения дополнительной информации об обучении сети регрессии, смотрите, Обучают Сверточную нейронную сеть Регрессии.

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

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

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

Deep Network Designer with imported combined array datastores.

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

CombinedDatastore

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

[XTrain,YTrain] = japaneseVowelsTrainData;

XTrain = padsequences(XTrain,2);

adsXTrain = arrayDatastore(XTrain,'IterationDimension',3);
adsYTrain = arrayDatastore(YTrain);

cdsTrain = combine(adsXTrain,adsYTrain);

Для получения информации об обучении сети на данных временных рядов смотрите, Обучат сеть для Прогнозирования Временных рядов Используя Deep Network Designer.

Для данных, которые не помещаются в память, используйте пользовательский объект datastore. Для примера, показывающего, как создать пользовательский datastore последовательности, смотрите, Обучат сеть Используя Пользовательский Мини-пакетный 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). Для получения дополнительной информации смотрите Хранилища данных для Глубокого обучения.

Например, создайте 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]);

Для табличных данных массива необходимо преобразовать данные в подходящий datastore, чтобы обучить использование Deep Network Designer. Например, запустите путем преобразовывания таблицы в массивы, содержащие предикторы и ответы. Затем преобразуйте массивы в arrayDatastore объекты. Наконец, объедините предиктор и хранилища данных массива ответа в CombinedDatastore объект. Можно затем использовать объединенный datastore, чтобы обучаться в Deep Network Designer. Для получения дополнительной информации о подходящих хранилищах данных смотрите Хранилища данных для Глубокого обучения.

Выберите 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 можно импортировать данные о валидации, чтобы использовать во время обучения. Данные о валидации являются данными, которые сеть не использует, чтобы обновить веса и смещения во время обучения. Когда сеть непосредственно не использует эти данные, это полезно для оценки истинной точности сети во время обучения. Можно контролировать метрики валидации, такие как потеря и точность, чтобы оценить, если сеть сверхсоответствует или underfitting, и настройте опции обучения как требуется. Например, если потеря валидации намного выше, чем учебная потеря, то сетевая сила сверхсоответствовать.

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

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

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

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

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

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

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

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

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

Смотрите также

| | | | |

Похожие темы