Сгенерируйте код 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);

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

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

| |

Похожие темы