exponenta event banner

Импорт данных в конструктор глубоких сетей

Данные обучения и проверки можно импортировать и визуализировать в Deep Network Designer. С помощью этого приложения можно:

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

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

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

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

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

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

Импорт ImageDatastore ОбъектИмпорт любого другого объекта хранилища данных (не рекомендуется для ImageDatastore)

Выберите «Импорт данных» > «Импорт данных изображения».

Выберите Импорт данных > Импорт хранилища данных.

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

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

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

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

Пример см. в разделе Transfer Learning with Deep Network Designer.

Выберите «Импорт данных» > «Импорт данных изображения».

Можно выбрать параметры увеличения и указать данные проверки с помощью диалогового окна «Импорт данных изображения».

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

Deep Network Designer with imported image data.

ImageDatastore

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

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

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

AugmentedImageDatastore

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

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 Datastore).

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

Deep Network Designer with imported augmented image datastore.

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

CombinedDatastore

Например, объединить ImageDatastore и PixelLabelDatastore(Панель инструментов компьютерного зрения).

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(Панель инструментов компьютерного зрения).

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

Выберите Импорт данных > Импорт хранилища данных.

Данные проверки можно указать в диалоговом окне Импорт хранилища данных (Import Datastore).

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

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);
Дополнительные сведения об обучении сети регрессии между изображениями см. в разделе Регрессия между изображениями в конструкторе глубоких сетей.

Выберите Импорт данных > Импорт хранилища данных.

Данные проверки можно указать в диалоговом окне Импорт хранилища данных (Import Datastore).

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

Deep Network Designer with imported combined datastore.

Регресс

CombinedDatastore

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

[XTrain,~,YTrain] = digitTrain4DArrayData;

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

cds = combine(ads,adsAngles);

Дополнительные сведения об обучении регрессионной сети см. в разделе Конволюционная нейронная сеть для регрессии.

Выберите Импорт данных > Импорт хранилища данных.

Данные проверки можно указать в диалоговом окне Импорт хранилища данных (Import Datastore).

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

Deep Network Designer with imported combined array datastores.

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

Пользовательское хранилище данных

Пример см. в разделе Подготовка сети с использованием пользовательского мини-хранилища пакетных данных для данных последовательности.

Выберите Импорт данных > Импорт хранилища данных.

Данные проверки можно указать в диалоговом окне Импорт хранилища данных (Import Datastore).

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

Deep Network Designer with imported custom sequence datastore.

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

Хранилище данных

Для других расширенных рабочих процессов используйте подходящий объект хранилища данных. Например, пользовательское хранилище данных, randomPatchExtractionDatastore(Панель инструментов обработки изображений), denoisingImageDatastore(Панель инструментов обработки изображений), или audioDatastore (Панель звуковых инструментов). Дополнительные сведения см. в разделе Хранилища данных для глубокого обучения.

Например, создайте denoisingImageDatastore с использованием Toolbox™ обработки изображений.

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

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

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

Выберите Импорт данных > Импорт хранилища данных.

Данные проверки можно указать в диалоговом окне Импорт хранилища данных (Import Datastore).

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

Deep Network Designer with imported denoising image datastore.

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

В случае проблем с классификацией изображений Deep Network Designer предоставляет простые возможности расширения для применения к данным обучения. Откройте диалоговое окно «Импорт данных изображения», выбрав «Импорт данных» > «Импорт данных изображения». Можно выбрать опции для применения случайной комбинации операций отражения, поворота, масштабирования и перевода к учебным данным.

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

Для выполнения более общих и сложных операций предварительной обработки изображений, чем предлагаемые Deep Network Designer, используйте TransformedDatastore и CombinedDatastore объекты. Импортировать CombinedDatastore и TransformedDatastore выберите «Импорт данных» > «Импорт хранилища данных».

Дополнительные сведения об увеличении изображения см. в разделе Изображения предварительной обработки для глубокого обучения.

Данные проверки

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

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

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

  • Из хранилища данных в рабочей области.

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

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

Разделение данных проверки из данных обучения

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

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

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

См. также

| | | | |

Связанные темы