Сгенерируйте код MATLAB от Deep Network Designer

Приложение Deep Network Designer позволяет вам сгенерировать код MATLAB® для сети, которую вы создаете или редактируете в приложении. После генерации скрипта вы можете:

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

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

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

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

Сгенерируйте код MATLAB и воссоздайте сетевые слои

Чтобы сгенерировать код 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);
Перед обучением необходимо задать данные и опции обучения. Этот пример задает данные и опции, подходящие для того, чтобы обучить сеть GoogLeNet, подготовленную к изучению передачи, как показано в Передаче, Учащейся с Deep Network Designer.

  1. Задайте данные. В данном примере используйте datastore изображений с 5 разделениями классов в наборы обучения и валидации.

    unzip('MerchData.zip');
    imds = imageDatastore('MerchData', ...
        'IncludeSubfolders',true, ...
        'LabelSource','foldernames');
    [imdsTrain,imdsValidation] = splitEachLabel(imds,0.7,'randomize');
    
    Обычно необходимо изменять размер изображений, чтобы совпадать с входным размером сети. Измените размер в учебное время к 224 224, чтобы совпадать с предварительно обученной сетью GoogLeNet.

    augimdsTrain = augmentedImageDatastore([224 224],imdsTrain);
    augimdsValidation = augmentedImageDatastore([224 224],imdsValidation);
  2. Задайте опции обучения. Например, включите график прогресса, задайте данные о валидации, задайте количество изображений, чтобы использовать в каждой итерации (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');

  3. Чтобы воссоздать сетевые слои, запустите сгенерированный скрипт.

  4. Чтобы обучить сеть, предоставьте график слоя или массив слоя к 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);

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

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

| |

Похожие темы