Приложение Deep Network Designer позволяет вам сгенерировать код MATLAB® для сети, которую вы создаете или редактируете в приложении. После генерации скрипта вы можете:
Запустите скрипт, чтобы воссоздать сетевые слои, созданные в приложении.
Чтобы обучить сеть, запустите скрипт и затем предоставьте слои к функции trainNetwork
.
Исследуйте код, чтобы учиться как слоям create и connect программно.
Чтобы изменить слои, отредактируйте код, или запустите скрипт и импортируйте сеть назад в приложение для редактирования.
Чтобы сгенерировать код MATLAB в Deep Network Designer, выберите одну из этих опций:
Чтобы сгенерировать скрипт, чтобы воссоздать слои в вашей сети, выберите Export> Generate Code.
Чтобы сгенерировать скрипт, чтобы воссоздать вашу сеть включая любые learnable параметры, выберите Export> Generate Code with Pretrained Parameters. Приложение создает скрипт и MAT-файл, содержащий learnable параметры (веса и смещения) от вашей сети. Запустите скрипт, чтобы воссоздать сетевые слои включая learnable параметры из MAT-файла. Используйте эту опцию, чтобы сохранить веса, если вы хотите использовать обучение с переносом.
Выполнение сгенерированного скрипта возвращает сетевую архитектуру как переменную в рабочей области. В зависимости от сетевой архитектуры переменная является графиком слоя под названием lgraph или массивом слоя под названием layers.
Если слои требуют обучения, предоставляют график слоя или массив слоя к функции trainNetwork
.
net = trainNetwork(data,lgraph,options);
Задайте данные. В данном примере используйте datastore изображений с 5 разделениями классов в наборы обучения и валидации.
unzip('MerchData.zip'); imds = imageDatastore('MerchData', ... 'IncludeSubfolders',true, ... 'LabelSource','foldernames'); [imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomize');
augimdsTrain = augmentedImageDatastore([224 224],imdsTrain); augimdsValidation = augmentedImageDatastore([224 224],imdsValidation);
Задайте опции обучения. Например, включите график прогресса, задайте данные о валидации, задайте количество изображений, чтобы использовать в каждой итерации (MiniBatchSize
) и количество учебных циклов, чтобы выполнить на целом наборе данных (MaxEpochs
). Для изучения передачи, набор InitialLearnRate
к маленькому значению, чтобы замедлить изучение в переданных слоях.
options = trainingOptions('sgdm', ... 'MiniBatchSize',10, ... 'MaxEpochs',6, ... 'InitialLearnRate',1e-4, ... 'Shuffle','every-epoch', ... 'ValidationData',augimdsValidation, ... 'ValidationFrequency',10, ... 'Verbose',false, ... 'Plots','training-progress');
Чтобы воссоздать сетевые слои, запустите сгенерированный скрипт.
Чтобы обучить сеть, предоставьте график слоя или массив слоя к функции trainNetwork
, с помощью заданных данных и опций обучения.
net = trainNetwork(augimdsTrain,lgraph,options);
Для скрипта в качестве примера, который устанавливает опции обучения для передачи, учащейся в сети, подготовленной в Deep Network Designer, смотрите, Обучат сеть Экспортируемые от Deep Network Designer.
Чтобы использовать обучивший сеть для прогноза, используйте функцию predict
. Например, используйте сеть, чтобы предсказать класс peppers.png
.
img = imread("peppers.png");
img = imresize(img, [128, 128]);
label = predict(net, img);
imshow(img);
title(label);
Для примеров командной строки, показывающих, то, как установить опции обучения и оценить, обучило сеть точность, смотрите, Создают Простую сеть глубокого обучения для Классификации и Обучают Остаточную Сеть для Классификации Изображений.
Deep Network Designer | trainNetwork
| trainingOptions