exponenta event banner

Создание простой сети классификации изображений с помощью разработчика глубоких сетей

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

В этом примере выполняется следующее:

  • Импорт данных изображения.

  • Определите архитектуру сети.

  • Укажите параметры обучения.

  • Обучение сети.

Загрузить данные

Загрузите данные образца цифры как хранилище данных изображения. imageDatastore функция автоматически помечает изображения на основе имен папок. У набора данных есть 10 классов, и каждое изображение в наборе данных составляет 28 на 28 на 1 пиксель.

digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ...
    'nndatasets','DigitDataset');

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

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

deepNetworkDesigner

Чтобы создать пустую сеть, приостановите ее и нажмите кнопку Создать.

Чтобы импортировать хранилище данных изображения, перейдите на вкладку «Данные» и выберите «Импорт данных» > «Импорт данных изображения». Выбрать imds в качестве источника данных. Отложите 30% данных обучения для использования в качестве данных проверки. Случайным образом распределите наблюдения между обучающими и проверочными наборами, выбрав пункт Рандомизировать (Randomize).

Импортируйте данные, щелкнув Импорт (Import).

Определение сетевой архитектуры

На панели Конструктор определите архитектуру сверточной нейронной сети. Перетащите слои из библиотеки слоев и соедините их. Для быстрого поиска слоев используйте поле поиска Фильтровать слои (Filter layers) на панели Библиотека слоев (Layer Library). Чтобы изменить свойства слоя, щелкните слой и отредактируйте значения на панели «Свойства».

Соединить слои в следующем порядке:

  1. imageInputLayer с InputSize свойство имеет значение 28,28,1

  2. convolution2dLayer

  3. batchNormalizationLayer

  4. reluLayer

  5. fullyConnectedLayer с OutputSize свойство имеет значение 10

  6. softmaxLayer

  7. classificationLayer

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

Железнодорожная сеть

Укажите параметры обучения и обучите сеть.

На вкладке Обучение щелкните Параметры обучения. В этом примере установите максимальное количество эпох равным 5 и сохраните другие настройки по умолчанию. Задайте параметры обучения, нажав Закрыть. Дополнительные сведения о параметрах обучения см. в разделах Настройка параметров и сверточная нейронная сеть поезда.

Обучите сеть, нажав кнопку Train.

Точность - это доля меток, которую сеть предсказывает правильно. В этом случае более 97% прогнозируемых меток соответствуют истинным меткам набора проверки.

Чтобы экспортировать обученную сеть в рабочую область, на вкладке Обучение (Training) щелкните Экспорт (Export).

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

См. также

|

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