Создайте сети с Deep Network Designer

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

Можно использовать Deep Network Designer для области значений сетевых задач конструкции:

Соберите сеть путем перетаскивания блоков из Layer Library и соединения их. Чтобы быстро искать слои, используйте поле поиска слоев Filter в панели Библиотеки Слоя.

Designer pane of Deep Network Designer with an imageInputLayer connected to a convolution2dLayer and an unconnected reluLayer

Можно добавить слои от рабочей области до сети в панели Designer.

  1. Нажмите New.

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

  3. Выберите слои или сеть, чтобы импортировать и нажать OK.

  4. Нажмите Add, чтобы добавить слои или сеть к панели Designer.

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

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

Properties pane displaying the properties of a crossChannelNormalizationLayer

Для получения информации обо всех свойствах слоя кликните по имени слоя в таблице на странице List of Deep Learning Layers.

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

Передача обучения

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

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

Загрузите предварительно обученную сеть

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

Совет

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

Deep Network Designer start page showing available networks

Адаптируйте предварительно обученную сеть

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

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

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

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

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

Convolution 2-D layer selected in Deep Network Designer. The Properties pane shows FilterSize set to 1,1 and NumFilters set to 5.

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

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

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

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

Fully connected layer selected in Deep Network Designer. The Properties pane shows OutputSize set to 5.

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

Classification layer selected in Deep Network Designer. The Properties pane shows OutputSize set to auto.

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

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

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

Отобразите классификацию

Можно создать сеть классификации изображений использование Deep Network Designer путем перетаскивания слоев от Библиотеки Слоя и соединения их. Можно также создать сеть в командной строке и затем импортировать сеть в Deep Network Designer.

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

inputSize = [28 28 1];
numClasses = 10;

layers = [
    imageInputLayer(inputSize)
    convolution2dLayer(5,20)
    batchNormalizationLayer
    reluLayer
    fullyConnectedLayer(numClasses)
    softmaxLayer
    classificationLayer];

deepNetworkDesigner(layers)

Image classification network in Deep Network Designer. The network starts with an image input layer and ends with a classification layer.

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

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

Классификация последовательностей

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

Sequence classification network in Deep Network Designer. The network starts with a sequence input layer and ends with a classification layer.

Можно адаптировать эту сеть последовательности к обучению с данными. Предположим, что у вас есть данные с 12 функциями и 9 классами. Чтобы адаптировать эту сеть, выберите sequenceInputLayer и установите InputSize на 12.

Sequence input layer selected in Deep Network Designer. The Properties pane shows InputSize set to 12.

Затем выберите fullyConnectedLayer и установите OutputSize на 9, количество классов.

Fully connected layer selected in Deep Network Designer. The Properties pane shows OutputSize set to 9.

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

Классификация числовых данных

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

Можно создать подходящую сеть с помощью Deep Network Designer, или можно создать сеть в командной строке и импортировать сеть в Deep Network Designer.

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

inputSize = 20;
numClasses = 10;

layers = [
featureInputLayer(inputSize,'Normalization','zscore')
fullyConnectedLayer(50)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(numClasses)
softmaxLayer
classificationLayer];

deepNetworkDesigner(layers)

Feature classification network in Deep Network Designer. The network starts with a feature input layer and ends with a classification layer.

Чтобы адаптировать эту сеть к вашим собственным данным, установите InputSize входного слоя функции совпадать с количеством функций в ваших данных и устанавливать OutputSize полносвязного слоя к количеству классов в ваших данных. Для более комплексных задач классификации создайте более глубокую сеть. Для получения дополнительной информации смотрите Глубокие Сети.

Чтобы обучить сеть в Deep Network Designer с помощью данных в таблице, необходимо сначала преобразовать данные в подходящий datastore. Например, запустите путем преобразовывания таблицы в массивы, содержащие предикторы и ответы. Затем преобразуйте массивы в arrayDatastore объекты. Наконец, объедините предиктор и хранилища данных массива ответа в CombinedDatastore объект. Можно затем использовать объединенный datastore, чтобы обучаться в Deep Network Designer. Для получения дополнительной информации смотрите, Импортируют Данные в Deep Network Designer. Можно также обучаться с табличными данными и trainNetwork функция путем экспорта сети в рабочую область.

Преобразуйте сеть классификации в сеть регрессии

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

Например, предположите, что у вас есть предварительно обученная сеть GoogLeNet. Чтобы преобразовать эту сеть в сеть регрессии с одним ответом, замените итоговый полносвязный слой, softmax слой и классификацию выходной слой с полносвязным слоем с набором OutputSize к 1 (количество ответов) и слой регрессии.

Diagram of the conversion of a classification network into a regression network. The final two layers of the classification network, a softmax layer and a classification layer, are replaced by a regression layer.

Если ваш выход имеет множественные ответы, измените значение OutputSize полносвязного слоя к количеству ответов.

Несколько - вход и несколько - Выходные сети

Несколько входных параметров

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

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

Network with multiple inputs in Deep Network Designer. The network has two image input layers and a single classification output layer.

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

Несколько Выходных параметров

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

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

The end of a network with multiple outputs. The first branch ends with a fully connected layer and a softmax layer. The second branch ends with a fully connected layer.

Чтобы обучить мультивыходную сеть, необходимо использовать пользовательский учебный цикл. Пользовательские учебные циклы должны использовать dlnetwork объект, который не содержит выходных слоев. Для получения дополнительной информации см. dlnetwork для Пользовательских Учебных Циклов.

Глубокие сети

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

Group selection of multiple layers in Deep Network Designer.

Поскольку обучившие нейронные сети, копирующие слои также копируют веса и смещения.

Можно также скопировать подсети с рабочей области, чтобы соединить легко использование приложения. Чтобы импортировать сеть или слои в приложение, нажмите New> Import from workspace. Нажмите Add, чтобы добавить слои в текущую сеть.

Усовершенствованное применение глубокого обучения

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

Создайте сеть Семантической Сегментации

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

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

Например, создайте простую сеть семантической сегментации на основе субдискретизации и повышающей дискретизации проекта.

inputSize = [32 32 1];

layers = [
    imageInputLayer(inputSize)
    convolution2dLayer([3,3],64,'Padding',[1,1,1,1])
    reluLayer
    maxPooling2dLayer([2,2],'Stride',[2,2])
    convolution2dLayer([3,3],64,'Padding',[1,1,1,1])
    reluLayer
    transposedConv2dLayer([4,4],64,'Stride',[2,2],'Cropping',[1,1,1,1])
    convolution2dLayer([1,1],2)
    softmaxLayer
    pixelClassificationLayer
    ];

deepNetworkDesigner(layers) 

Semantic segmentation network in Deep Network Designer. The network starts with an image input layer and ends with a pixel classification layer.

Для получения дополнительной информации о построении и обучении сети семантической сегментации, смотрите, Обучают Простую Сеть Семантической Сегментации в Deep Network Designer (Computer Vision Toolbox).

Создайте сеть регрессии от изображения к изображению

Регрессия от изображения к изображению включает взятие входного изображения и создание выходного изображения, часто одного размера. Этот тип сети полезен для суперразрешения, колоризации или изображения deblurring.

Можно создать сети регрессии от изображения к изображению с помощью Deep Network Designer. Например, создайте простую сетевую архитектуру, подходящую для регрессии от изображения к изображению с помощью unetLayers функция от Computer Vision Toolbox™. Эта функция обеспечивает сеть, подходящую для семантической сегментации, которая может быть легко адаптирована к регрессии от изображения к изображению.

Создайте сеть с входным размером 28 28 на 1 пиксель.

layers = unetLayers([28,28,1],2,'encoderDepth',2);
deepNetworkDesigner(layers);

В панели Разработчика замените softmax и слои классификации пикселей со слоем регрессии от Библиотеки Слоя.

Diagram of the conversion of a pixel classification network into an image-to-image regression network. The final two layers of the classification network, a softmax layer and a pixel classification layer, are replaced by a regression layer.

Выберите итоговый сверточный слой и установите свойство NumFilters на 1.

Convolutional 2-D layer selected in Deep Network Designer. The Properties pane shows NumFilters set to 1.

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

dlnetwork для пользовательских учебных циклов

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

Чтобы проверять, что ваша сеть готова к обучению с помощью пользовательского учебного цикла, нажмите Analyze> Analyze for dlnetwork. Для получения дополнительной информации смотрите Сеть Проверки.

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

Проверяйте сеть

Чтобы проверять вашу сеть и исследовать слои более подробно, на вкладке Designer, нажимают Analyze. Исследуйте проблемы и исследуйте свойства слоя, чтобы разрешить несоответствия размера в сети. Возвратитесь к Deep Network Designer, чтобы отредактировать слои, затем проверять результаты путем нажатия на Analyze снова. Если Нейронная сеть для глубокого обучения нулевые ошибки отчетов Анализатора, то отредактированная сеть готова к обучению.

Deep Learning Network Analyzer showing zero warnings or errors.

Можно также анализировать сети для пользовательских учебных рабочих процессов. Нажмите Analyze> Analyze for dlnetwork, чтобы анализировать сеть для использования с dlnetwork объекты. Например, Сеть Анализатор проверяет, что график слоев не имеет никаких выходных слоев.

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

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте