exponenta event banner

Конструктор глубоких сетей

Проектирование, визуализация и обучение сетей глубокого обучения

Описание

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

  • Создание, импорт, редактирование и объединение сетей.

  • Загрузите предварительно подготовленные сети и отредактируйте их для обучения передаче.

  • Просмотр и редактирование свойств слоев и добавление новых слоев и соединений.

  • Проанализируйте сеть, чтобы убедиться, что сетевая архитектура определена правильно, и определите проблемы перед обучением.

  • Импорт и визуализация хранилищ данных и данных изображений для обучения и проверки.

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

  • Обучение сетей и мониторинг обучения с графиками точности, потерь и метрик проверки.

  • Создание кода MATLAB ® для построения и обучения сетей.

Deep Network Designer app

Откройте приложение Deep Network Designer

  • MATLAB Toolstrip: На вкладке Приложения в разделе Машинное обучение и Глубокое обучение щелкните значок приложения.

  • командная строка MATLAB: Enter deepNetworkDesigner.

Примеры

развернуть все

Изучите простую предварительно подготовленную сеть классификации изображений в Deep Network Designer.

Откройте приложение и выберите предварительно подготовленную сеть. Предварительно подготовленную сеть можно также загрузить, выбрав вкладку Конструктор (Designer) и нажав кнопку Создать (New). Если необходимо загрузить сеть, нажмите кнопку Установить, чтобы открыть обозреватель надстроек.

Совет

Чтобы начать работу, попробуйте выбрать одну из более быстрых сетей, например SqueeEcNet или GoogLeNet. Как только вы получите представление о том, какие параметры работают хорошо, попробуйте использовать более точную сеть, такую как Inception-v3 или ResNet, и убедитесь, что это улучшает результаты. Дополнительные сведения о выборе предварительно обученной сети см. в разделе Предварительно обученные глубокие нейронные сети.

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

Сведения о построении сетей с помощью Deep Network Designer см. в разделе Создание сетей с помощью Deep Network Designer.

Подготовьте сеть для обучения переносу, отредактировав ее в Deep Network Designer.

Transfer learning - это процесс получения заранее обученной сети глубокого обучения и ее точной настройки для изучения новой задачи. Вы можете быстро перенести изученные функции на новую задачу, используя меньшее количество обучающих изображений. Таким образом, обучение передаче часто происходит быстрее и проще, чем обучение сети с нуля. Чтобы использовать предварительно подготовленную сеть для обучения передаче, необходимо изменить количество классов в соответствии с новым набором данных.

Откройте Deep Network Designer с помощью SqueeNet.

deepNetworkDesigner(squeezenet)

Для подготовки сети к переносу обучения замените последний обучаемый уровень и окончательный классификационный уровень. Для SqueezeNet последний learnable слой - 2-й сверточный названный слой 'conv10'.

  • Перетаскивание нового convolution2dLayer на холст. Установите FilterSize свойство для 1,1 и NumFilters к новому количеству классов.

  • Изменение скорости обучения таким образом, чтобы обучение было быстрее на новом уровне, чем на перенесенных уровнях, путем увеличения WeightLearnRateFactor и BiasLearnRateFactor.

  • Удалить последнюю convolution2dLayer и подключите новый слой.

Совет

Для большинства предварительно подготовленных сетей (например, GoogLeNet) последним обучаемым уровнем является полностью подключенный уровень. Для подготовки сети к обучению переносу замените полностью подключенный уровень новым полностью подключенным уровнем и установите OutputSize к новому количеству классов. Пример см. в разделе Начало работы с Deep Network Designer.

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

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

Для получения справки по изучению и редактированию свойств слоя щелкните значок справки рядом с именем слоя.

На панели «Конструктор» выберите слой для просмотра и редактирования свойств. Щелкните значок справки рядом с именем слоя для получения дополнительной информации о свойствах слоя.

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

Добавление слоев из рабочего пространства в сеть в Deep Network Designer.

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

  1. Щелкните Создать (New) на вкладке Конструктор (Designer).

  2. Приостановите действие Из рабочей области (From Workspace) и щелкните Импорт (Import).

  3. Выбрать myCustomLayer и нажмите кнопку ОК.

  4. Нажмите "Добавить".

Приложение добавляет пользовательский слой в верхнюю часть панели Конструктор. Чтобы увидеть новый слой, увеличьте изображение с помощью мыши или нажмите кнопку «Увеличить».

Соединиться myCustomLayer в сеть на панели Конструктор. Пример создания сети с пользовательским слоем в Deep Network Designer см. в разделе Импорт пользовательского слоя в Deep Network Designer.

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

Импорт данных в Deep Network Designer для обучения.

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

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

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

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

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

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

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

Для других расширенных рабочих процессов используйте подходящий объект хранилища данных. Например, AugmentedImageDatastore, CombinedDatastore, pixelLabelImageDatastore (Панель инструментов Computer Vision) или пользовательское хранилище данных.

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

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

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

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

Создайте и экспортируйте сетевую архитектуру, созданную в Deep Network Designer, в рабочую область.

  • Чтобы экспортировать сетевую архитектуру с начальными весами, на вкладке Конструктор нажмите кнопку Экспорт. В зависимости от архитектуры сети Deep Network Designer экспортирует сеть как LayerGraph lgraph или как Layer слои объекта.

  • Чтобы экспортировать сетевую архитектуру с обученными весами, на вкладке Обучение щелкните Экспорт. Deep Network Designer экспортирует обученную сетевую архитектуру как DAGNetwork объект trainedNetwork. Deep Network Designer также экспортирует результаты обучения, такие как точность обучения и проверки, в виде структурного массива TrainInfoStruct.

Для воссоздания сети, создаваемой и обучаемой в Deep Network Designer, создайте код MATLAB.

Чтобы воссоздать сетевые слои, на вкладке «Конструктор» выберите «Экспорт» > «Создать код». Можно также воссоздать сеть, включая все доступные для изучения параметры, выбрав команду «Экспорт» > «Создать код с начальными параметрами». После создания сценария можно выполнить следующие задачи.

  • Чтобы воссоздать сетевые слои, созданные в приложении, запустите сценарий.

  • Чтобы обучить сеть, запустите сценарий, а затем отправьте слои в trainNetwork функция.

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

  • Чтобы изменить слои, отредактируйте код. Также можно запустить сценарий и импортировать сеть обратно в приложение для редактирования.

Чтобы воссоздать сеть, импорт данных и обучение, на вкладке Обучение выберите Экспорт > Создать код для обучения. После создания сценария можно выполнить следующие задачи.

  • Чтобы воссоздать сетевые уровни и обучение, выполняемое в приложении, запустите сценарий.

  • Изучите код, чтобы узнать, как программно импортировать данные, а также создать и обучить сеть.

  • Измените код, чтобы попробовать различные сетевые архитектуры и варианты обучения и посмотреть, как они влияют на результаты.

Дополнительные сведения см. в разделе Создание кода MATLAB из Deep Network Designer.

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

Связанные примеры

Программное использование

развернуть все

deepNetworkDesigner открывает приложение Deep Network Designer. Если Deep Network Designer уже открыт, deepNetworkDesigner фокус на приложении.

deepNetworkDesigner(net) открывает приложение Deep Network Designer и загружает указанную сеть в приложение. Сеть может быть последовательной сетью, сетью DAG, графиком слоев или массивом слоев.

Например, откройте Deep Network Designer с предварительно обученной сетью SqueeEcNet.

net = squeezenet;
deepNetworkDesigner(net);

Если Deep Network Designer уже открыт, deepNetworkDesigner(net) переносит фокус на приложение и предлагает добавить или заменить любую существующую сеть.

Совет

Чтобы обучить несколько сетей и сравнить результаты, воспользуйтесь диспетчером экспериментов.

Представлен в R2018b