Deep Network Designer

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

Описание

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

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

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

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

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

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

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

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

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

Deep Network Designer app

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

  • Панель инструментов MATLAB: На вкладке Apps, под Machine Learning and Deep Learning, кликают по значку приложения.

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

Примеры

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

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

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

Совет

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

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

Для получения информации о построении сетей с помощью Deep Network Designer смотрите Сети Сборки с Deep Network Designer.

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

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

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

deepNetworkDesigner(squeezenet)

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

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

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

  • Удалите последний convolution2dLayer и соедините свой новый слой вместо этого.

Совет

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

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

Проверяйте свою сеть путем нажатия на Analyze во вкладке Designer. Сеть готова к обучению, если Нейронная сеть для глубокого обучения Анализатор сообщает о нулевых ошибках. Для примера, показывающего, как обучить сеть, чтобы классифицировать новые изображения, смотрите Передачу обучения с 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 для применения глубокого обучения, смотрите Хранилища данных для Глубокого обучения.

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

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

Чтобы обучить сеть на данных, вы импортируете в Deep Network Designer, на вкладке Training, нажимаете Train. Если вы требуете большего управления обучением, нажмите Training Options, чтобы выбрать учебные настройки. Для получения дополнительной информации о выборе опций обучения, смотрите trainingOptions. Для примера, показывающего, как обучить сеть классификации изображений, смотрите Передачу обучения с 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 функция.

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

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

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

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

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

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

Для получения дополнительной информации смотрите, Генерируют код MATLAB от Deep Network Designer.

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

net = squeezenet;
deepNetworkDesigner(net);

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

Советы

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

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

Функции

Введенный в R2018b