Deep Network Designer

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

Описание

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

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

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

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

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

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

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

  • Обучите сети и отслеживайте обучение с помощью графиков точности, потерь и метрики валидации.

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

Deep Network Designer app

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

  • MATLAB Toolstrip: На вкладке Apps, в разделе Machine Learning and Deep Learning, щелкните значок приложения.

  • Командная строка MATLAB: Ввод deepNetworkDesigner.

Примеры

расширить все

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

Откройте приложение и выберите предварительно обученную сеть. Можно также загрузить предварительно обученную сеть, выбрав вкладку Designer и щелкнув New. Если необходимо загрузить сеть, нажмите кнопку Install, чтобы открыть Add-On Explorer.

Совет

Чтобы начать, попробуйте выбрать одну из более быстрых сетей, таких как SqueezeNet или GoogLeNet. Как только вы получите представление о том, какие настройки работают хорошо, попробуйте более точную сеть, такую как Inception-v3 или ResNet, и посмотрите, улучшает ли это ваши результаты. Для получения дополнительной информации о выборе предварительно обученной сети смотрите Pretrained Deep Neural Networks.

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

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

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

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

Откройте Deep Network Designer с SqueezeNet.

deepNetworkDesigner(squeezenet)

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

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

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

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

Совет

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

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

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

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

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

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

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

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

  1. Щелкните New на вкладке Designer.

  2. Сделайте паузу на From Workspace и нажмите Import.

  3. Выберите myCustomLayer и нажмите OK.

  4. Нажмите Add.

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

Соедините myCustomLayer в сеть на панели Designer. Пример, показывающий создание сети с пользовательским слоем в Deep Network Designer, см. в разделе Импорт пользовательского слоя в Deep Network Designer.

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

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

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

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

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

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

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

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

Datastore.

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

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

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

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

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

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

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

  • Чтобы экспортировать сетевую архитектуру с обученными весами, на вкладке Training нажмите Export. Deep Network Designer экспортирует обученную сетевую архитектуру как DAGNetwork trainedNetwork объекта. Deep Network Designer также экспортирует результаты обучения, такие как точность обучения и валидации, как trainInfoStruct массива структур.

Чтобы воссоздать сеть, которую вы создаете и обучаете в Deep Network Designer, сгенерируйте код MATLAB.

Чтобы воссоздать слои сети, на вкладке Designer выберите Export > Generate Code. Также можно воссоздать сеть, включая любые настраиваемые параметры, выбрав Export > Generate Code with Initial Parameters. После генерации скрипта можно выполнить следующие задачи.

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

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

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

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

Чтобы воссоздать сеть, импорт данных и обучение, на вкладке Training выберите Export > Generate Code for Training. После генерации скрипта можно выполнить следующие задачи.

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

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

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

Для получения дополнительной информации смотрите Сгенерировать код MATLAB из Deep Network Designer.

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

Похожие примеры

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

расширить все

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

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

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

net = squeezenet;
deepNetworkDesigner(net);

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

Совет

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

Введенный в R2018b