В этом примере показано, как импортировать пользовательский взвешенный слой классификации и добавить его в предварительно обученную сеть в Deep Network Designer. Используйте взвешенный слой классификации для проблем классификации с неустойчивым распределением классов.
Задайте пользовательский взвешенный слой классификации. Чтобы создать этот слой, сохраните файл weightedClassificationLayer.m
в текущей папке. Для получения дополнительной информации о построении этого слоя смотрите, Задают Пользовательский Взвешенный Слой Классификации.
Предположим, что у вас есть набор данных с двумя классами. Задайте веса класса как вектор с двумя элементами, соответствующими двум классам.
classWeights = [0.2 0.8];
Создайте экземпляр слоя.
weightedOutputLayer = weightedClassificationLayer(classWeights);
Откройте Deep Network Designer с предварительно обученной сетью GoogLeNet.
deepNetworkDesigner(googlenet);
Чтобы адаптировать предварительно обученную сеть, замените последний learnable слой и итоговый слой классификации с новыми слоями, адаптированными к новому набору данных. В GoogLeNet эти слои имеют имена 'loss3-classifier'
и 'output'
, соответственно.
В панели Разработчика перетащите новый fullyConnectedLayer
от Библиотеки Слоя на холст. Установите OutputSize
к новому количеству классов, в этом примере, 2
.
Отредактируйте скорости обучения, чтобы учиться быстрее в новых слоях, чем в переданных слоях. Установите WeightLearnRateFactor
и BiasLearnRateFactor
к 10
. Удалите последний полносвязный слой и соедините свой новый слой вместо этого.
Затем замените выходной слой на свой пользовательский взвешенный выходной слой. Нажмите New в панели Разработчика. Сделайте паузу на Из Рабочей области и нажмите Import. Чтобы импортировать пользовательский взвешенный слой классификации, выберите weightedOutputLayer
и нажмите ОК.
Добавьте слой в текущую предварительно обученную сеть GoogLeNet путем нажатия на Add. Приложение добавляет пользовательский слой в верхнюю часть панели Разработчика. Видеть новый слой, увеличение использования Увеличение нажатия кнопки или мышь.
Перетащите пользовательский слой к нижней части панели Разработчика. Замените итоговую классификацию выходной слой на новый взвешенный выходной слой и соедините новый слой.
Проверяйте свою сеть путем нажатия на Analyze. Сеть готова к обучению, если Нейронная сеть для глубокого обучения Анализатор сообщает о нулевых ошибках.
После того, как вы создадите свою сеть, вы готовы импортировать данные и обучаться. Для получения дополнительной информации об импортировании данных и обучения в Deep Network Designer, смотрите Передачу обучения с Deep Network Designer.