Создайте и отредактируйте нейронные сети для глубокого обучения в интерактивном режиме с помощью приложения Deep Network Designer. Используя это приложение, можно импортировать сети или создать сеть с нуля, представление и отредактировать свойства слоя, сети объединения, и сгенерировать код, чтобы создать сетевую архитектуру. Можно затем обучить сеть с помощью Deep Network Designer или экспортировать сеть для обучения в командной строке.
Можно использовать Deep Network Designer для области значений сетевых задач конструкции:
Соберите сеть путем перетаскивания блоков из Layer Library и соединения их. Чтобы быстро искать слои, используйте поле поиска слоев Filter в панели Библиотеки Слоя.
Можно добавить слои от рабочей области до сети в панели Designer.
Нажмите New.
Сделайте паузу на From Workspace и нажмите Import.
Выберите слои или сеть, чтобы импортировать и нажать OK.
Нажмите Add, чтобы добавить слои или сеть к панели Designer.
Можно также загрузить предварительно обученные сети путем нажатия на New и выбора их из начальной страницы.
Чтобы просмотреть и отредактировать свойства слоя, выберите слой. Кликните по значку справки рядом с именем слоя для получения информации о свойствах слоя.
Для получения информации обо всех свойствах слоя кликните по имени слоя в таблице на странице List of Deep Learning Layers.
Если вы создали свою сеть, можно анализировать ее, чтобы проверить ошибки. Для получения дополнительной информации смотрите Сеть Проверки.
Передача обучения обычно используется в применении глубокого обучения. Можно взять предварительно обученную сеть и использовать ее в качестве начальной точки, чтобы изучить новую задачу. Подстройка сети с передачей обучения обычно намного быстрее и легче, чем обучение сети со случайным образом инициализированными весами с нуля. Можно быстро передать изученные функции новой задаче с помощью меньшего числа учебных изображений.
Deep Network Designer имеет выбор предварительно обученных сетей, подходящих для передачи обучения с данными изображения.
Откройте приложение и выберите предварительно обученную сеть. Можно также загрузить предварительно обученную сеть путем выбора вкладки Designer и нажатия на New. Если необходимо загрузить сеть, сделать паузу в сети и нажать Install, чтобы открыть Add-On Explorer.
Совет
Чтобы начать, попытайтесь выбрать одну из более быстрых сетей, таких как SqueezeNet или GoogLeNet. Если вы получаете понимание, которого настройки работают хорошо, пробуют более точную сеть, такую как Inception-v3 или ResNet, и видят, улучшает ли это ваши результаты. Для получения дополнительной информации о выборе предварительно обученной сети смотрите Предварительно обученные Глубокие нейронные сети.
Чтобы подготовить сеть к передаче обучения, замените последний learnable слой и итоговый слой классификации.
Если последний learnable слой является 2D сверточным слоем (например, 'conv10'
слой в SqueezeNet):
Перетащите новый convolution2dLayer на холст. Установите свойство NumFilters на новое количество классов и FilterSize к 1,1
.
Измените скорости обучения так, чтобы изучение было быстрее в новом слое, чем в переданных слоях путем увеличения значений BiasLearnRateFactor и WeightLearnRateFactor.
Удалите последний convolution2dLayer и соедините свой новый слой вместо этого.
Если последний learnable слой является полносвязным слоем (большинство предварительно обученных сетей, например, GoogLeNet):
Перетащите новый fullyConnectedLayer на холст и установите свойство OutputSize на новое количество классов.
Измените скорости обучения так, чтобы изучение было быстрее в новом слое, чем в переданных слоях путем увеличения значений BiasLearnRateFactor и WeightLearnRateFactor.
Удалите последний fullyConnectedLayer и соедините свой новый слой вместо этого.
Затем удалите классификацию выходной слой. Затем перетащите новый classificationLayer на холст и соедините его вместо этого. Настройки по умолчанию для выходного слоя означают, что он изучит количество классов во время обучения.
Чтобы проверять, что сеть готова к обучению на вкладке 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)
Чтобы адаптировать эту сеть к вашим собственным данным, установите InputSize входного слоя изображений совпадать с вашим входным размером изображений и устанавливать OutputSize полносвязного слоя к количеству классов в ваших данных. Для более комплексных задач классификации создайте более глубокую сеть. Для получения дополнительной информации смотрите Глубокие Сети.
Для примера, показывающего, как создать и обучить сеть классификации изображений, смотрите, Создают Простую Сеть Классификации Изображений Используя Deep Network Designer.
Можно использовать Deep Network Designer, чтобы создать сеть последовательности с нуля, или можно использовать одну из предварительно созданных нетренированных сетей от начальной страницы. Откройте начальную страницу Deep Network Designer. Сделайте паузу на Последовательности к метке и нажмите Open. Выполнение так открывает предварительно созданную сеть, подходящую для проблем классификации последовательностей.
Можно адаптировать эту сеть последовательности к обучению с данными. Предположим, что у вас есть данные с 12 функциями и 9 классами. Чтобы адаптировать эту сеть, выберите sequenceInputLayer и установите InputSize на 12
.
Затем выберите fullyConnectedLayer и установите OutputSize на 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)
Чтобы адаптировать эту сеть к вашим собственным данным, установите InputSize входного слоя функции совпадать с количеством функций в ваших данных и устанавливать OutputSize полносвязного слоя к количеству классов в ваших данных. Для более комплексных задач классификации создайте более глубокую сеть. Для получения дополнительной информации смотрите Глубокие Сети.
Чтобы обучить сеть в Deep Network Designer с помощью данных в таблице, необходимо сначала преобразовать данные в подходящий datastore. Например, запустите путем преобразовывания таблицы в массивы, содержащие предикторы и ответы. Затем преобразуйте массивы в arrayDatastore
объекты. Наконец, объедините предиктор и хранилища данных массива ответа в CombinedDatastore
объект. Можно затем использовать объединенный datastore, чтобы обучаться в Deep Network Designer. Для получения дополнительной информации смотрите, Импортируют Данные в Deep Network Designer. Можно также обучаться с табличными данными и trainNetwork
функция путем экспорта сети в рабочую область.
Можно преобразовать сеть классификации в сеть регрессии, заменив последние слои сети. Преобразование полезно, когда это необходимо, чтобы взять предварительно обученную сеть классификации и переобучить ее для задач регрессии.
Например, предположите, что у вас есть предварительно обученная сеть GoogLeNet. Чтобы преобразовать эту сеть в сеть регрессии с одним ответом, замените итоговый полносвязный слой, softmax слой и классификацию выходной слой с полносвязным слоем с набором OutputSize к 1 (количество ответов) и слой регрессии.
Если ваш выход имеет множественные ответы, измените значение OutputSize полносвязного слоя к количеству ответов.
Можно задать сеть с несколькими входными параметрами, если сеть требует данных из многочисленных источников или в различных форматах. Например, некоторые сети требуют данных изображения, полученных от нескольких датчиков в различных разрешениях.
Используя Deep Network Designer, можно управлять вводами и выводами каждого слоя. Например, чтобы создать сеть с входными параметрами повторного изображения, создайте две ветви, каждого начиная с входного слоя изображений.
Можно обучить мультивходную сеть с тем же типом входа, например, изображений из двух источников различия, с помощью Deep Network Designer и объекта datastore. Для сетей с данными в нескольких форматах, например, изображении и данных о последовательности, обучают сеть с помощью пользовательского учебного цикла. Для получения дополнительной информации см. dlnetwork для Пользовательских Учебных Циклов.
Можно задать сети с несколькими выходными параметрами для задач, требующих множественных ответов в различных форматах, например, задачи, требующие и категориального и числового выхода.
Используя Deep Network Designer, можно управлять выходными параметрами каждого слоя.
Чтобы обучить мультивыходную сеть, необходимо использовать пользовательский учебный цикл. Пользовательские учебные циклы должны использовать dlnetwork
объект, который не содержит выходных слоев. Для получения дополнительной информации см. dlnetwork для Пользовательских Учебных Циклов.
Создание больших сетей может затруднить, можно использовать Deep Network Designer, чтобы ускорить конструкцию. Можно работать с блоками слоев за один раз. Выберите несколько слоев, затем скопируйте и вставьте или удалите. Например, можно использовать блоки слоев, чтобы создать несколько копий групп свертки, нормализации партии. и слоев ReLU.
Поскольку обучившие нейронные сети, копирующие слои также копируют веса и смещения.
Можно также скопировать подсети с рабочей области, чтобы соединить легко использование приложения. Чтобы импортировать сеть или слои в приложение, нажмите 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)
Для получения дополнительной информации о построении и обучении сети семантической сегментации, смотрите, Обучают Простую Сеть Семантической Сегментации в 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 и слои классификации пикселей со слоем регрессии от Библиотеки Слоя.
Выберите итоговый сверточный слой и установите свойство NumFilters на 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 снова. Если Нейронная сеть для глубокого обучения нулевые ошибки отчетов Анализатора, то отредактированная сеть готова к обучению.
Можно также анализировать сети для пользовательских учебных рабочих процессов. Нажмите Analyze> Analyze for dlnetwork, чтобы анализировать сеть для использования с dlnetwork
объекты. Например, Сеть Анализатор проверяет, что график слоев не имеет никаких выходных слоев.