В этом примере показано, как сконфигурировать эксперимент, который заменяет слои различных предварительно обученных сетей для передачи обучения. Чтобы сравнить эффективность различных предварительно обученных сетей для вашей задачи, отредактируйте этот эксперимент и укажите, какие предварительно обученные сети использовать. Перед запуском эксперимента используйте такие функции, как
чтобы получить ссылки для загрузки предварительно обученных сетей из Add-On Explorer.googlenet
Передача обучения обычно используется в применениях глубокого обучения. Можно взять предварительно обученную сеть и использовать ее как начальная точка для изучения новой задачи. Подстройка сети с передачей обучения обычно намного быстрее и проще, чем обучение сети со случайным образом инициализированными весами с нуля. Можно быстро перенести выученные функции в новую задачу с помощью меньшего количества обучающих изображений.
В Deep Learning Toolbox™ доступно много предварительно обученных сетей. Эти предварительно обученные сети имеют различные характеристики, которые имеют значение при выборе сети, чтобы применить к вашей задаче. Наиболее важными характеристиками являются точность сети, скорость и размер. Выбор сети, как правило, является компромиссом между этими характеристиками. Для получения дополнительной информации см. «Предварительно обученные глубокие нейронные сети».
Сначала откройте пример. Experiment Manager загружает проект с помощью предварительно сконфигурированного эксперимента, который можно просмотреть и запустить. Чтобы открыть эксперимент, в панели Experiment Browser дважды кликните имя эксперимента (TransferLearningExperiment
).
Встроенные обучающие эксперименты состоят из описания, таблицы гиперпараметров, функции настройки и набора метрических функций для оценки результатов эксперимента. Для получения дополнительной информации см. раздел «Настройка встроенного обучающего эксперимента».
Поле Description содержит текстовое описание эксперимента. В данном примере описанием является:
Perform transfer learning by replacing layers in a pretrained network.
Раздел «Гиперпараметров» задает стратегию (Exhaustive Sweep
) и значения гиперзначений параметров для использования в эксперименте. Когда вы запускаете эксперимент, Experiment Manager обучает сеть с помощью каждой комбинации значений гиперзначений параметров, заданных в таблице гиперпараметра. В этом примере гиперпараметр NetworkName
задает обучаемую сеть и значение опции обучения 'miniBatchSize'
.
Функция Setup настраивает обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы просмотреть функцию настройки, в разделе Setup Function, нажмите Edit. Функция настройки откроется в MATLAB ® Editor.
В этом примере функция настройки:
Загружает и извлекает набор данных Flowers, который составляет около 218 МБ. Дополнительные сведения об этом наборе данных см. в разделе Наборы данных изображений.
Загружает предварительно обученную сеть, соответствующую гиперпараметру NetworkName
. Вспомогательная функция findLayersToReplace
определяет слои сетевой архитектуры, которые нужно заменить для передачи обучения. Для получения дополнительной информации о доступных предварительно обученных сетях смотрите Pretrained Deep Neural Networks.
Задает
объект для эксперимента. Пример обучает сеть в течение 10 эпох, используя начальную скорость обучения 0,0003 и проверяя сеть каждые 5 эпох.trainingOptions
Раздел Metrics задает дополнительные функции, которые оценивают результаты эксперимента. Этот пример не включает какие-либо пользовательские метрические функции.
Когда вы запускаете эксперимент, Experiment Manager обучает сеть, заданную функцией настройки, шесть раз. В каждом испытании используется разная комбинация значений гиперзначений параметров. По умолчанию Experiment Manager запускает по одной пробной версии за раз. Если у вас есть Parallel Computing Toolbox™, можно запустить несколько испытаний одновременно. Для достижения наилучших результатов, прежде чем вы запустите свой эксперимент, запустите параллельный пул с таким количеством работников, как графические процессоры. Для получения дополнительной информации смотрите Использование Experiment Manager для обучения сетей в параллельных и графический процессор поддержке по Релизу (Parallel Computing Toolbox).
Чтобы запустить по одной пробной версии эксперимента за раз, на панели инструментов Experiment Manager нажмите кнопку Запустить.
Чтобы запустить несколько испытаний одновременно, щелкните Использовать Параллель (Use Parallel) и затем Запуск. Если текущий параллельный пул отсутствует, Experiment Manager запускает его с помощью профиля кластера по умолчанию. Затем Experiment Manager выполняет несколько одновременных испытаний, в зависимости от количества доступных параллельных работников.
Таблица результатов отображает точность и потери для каждого пробного периода.
Во время выполнения эксперимента нажмите Training Plot, чтобы отобразить график обучения и отследить прогресс в каждом испытании.
Нажмите Confusion Matrix, чтобы отобразить матрицу неточностей для данных валидации в каждой завершенной пробной версии.
Когда эксперимент заканчивается, можно отсортировать таблицу результатов по столбцам, фильтровать пробные версии с помощью панели Фильтры (Filters) или записывать наблюдения путем добавления аннотаций. Для получения дополнительной информации см. Раздел «Сортировка, фильтрация и аннотация результатов эксперимента».
Чтобы проверить эффективность отдельного теста, экспортируйте обученную сеть или обучающую информацию для теста. На панели инструментов Experiment Manager выберите Экспорт > Обученная сеть или Экспорт > Информация о обучении, соответственно. Для получения дополнительной информации см. net и info.
На панели браузера экспериментов щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Experiment Manager закрывает все эксперименты и результаты, содержащиеся в проекте.