Deep Network Designer

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

Описание

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

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

  • Импортируйте и отредактируйте сети и создайте новые сети.

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

  • Просмотрите и отредактируйте свойства слоя.

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

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

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

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

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

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

Откройте приложение 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 для обучения.

Чтобы импортировать данные в приложение, на вкладке Data, нажимают Import Data.

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

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

Deep Network Designer предоставляет следующие возможности увеличения:

  • Случайное отражение в оси X

  • Случайное отражение в оси Y

  • Случайное вращение

  • Случайное перемасштабирование

  • Случайный горизонтальный перевод

  • Случайный вертикальный перевод

Примечание

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

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

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

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

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

Открытый Deep Network Designer.

deepNetworkDesigner

Загрузите предварительно обученную сеть путем выбора его из начальной страницы Deep Network Designer. Попытайтесь выбор SqueezeNet из списка предварительно обученных сетей. Нажмите Open, чтобы загрузить сеть.

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

  • Если последний learnable слой является 2D сверточным слоем (например, 'conv10'слой в SqueezeNet):

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

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

  • Если последний learnable слой является полносвязным слоем (большинство предварительно обученных сетей, например, GoogLeNet):

    • Перетащите новый fullyConnectedLayer на холст и набор OutputSize свойство к новому количеству классов.

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

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

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

Чтобы обучить сеть, выберите вкладку Training. Для получения дополнительной информации смотрите Передачу обучения с Deep Network Designer.

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

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

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

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

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

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

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

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

  • Чтобы экспортировать сетевую архитектуру с начальными весами, на вкладке Designer, нажимают Export.

  • Чтобы экспортировать сетевую архитектуру с обученными весами, на вкладке Training, нажимают Export.

Чтобы воссоздать слоя сети, вы создаете в приложении Deep Network Designer, генерируете код MATLAB.

Чтобы воссоздать слоя сети, на вкладке Designer, выбирают Export> Generate Code.

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

После генерации скрипта можно выполнить следующие задачи.

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

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

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

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

Для получения дополнительной информации смотрите, Генерируют код MATLAB, чтобы Воссоздать Слоя сети.

Чтобы воссоздать импорт данных и обучение, вы выполняете в приложении Deep Network Designer, генерируете код MATLAB.

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

После генерации скрипта можно выполнить следующие задачи.

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

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

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

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

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

Советы

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

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

Функции

Введенный в R2018b