Попробуйте несколько предварительно обученных сетей за передачу обучения

В этом примере показано, как сконфигурировать эксперимент, который заменяет слои различных предварительно обученных сетей для передачи обучения. Чтобы сравнить эффективность различных предварительно обученных сетей для вашей задачи, отредактируйте этот эксперимент и задайте который предварительно обученные сети использовать. Прежде, чем запустить эксперимент, используйте функции, такие как googlenet заставить ссылки загружать предварительно обученные сети с Add-On Explorer.

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

Существует много предварительно обученных сетей, доступных в Deep Learning Toolbox™. Эти предварительно обученные сети имеют различные характеристики, которые имеют значение при выборе сети, чтобы примениться проблеме. Самые важные характеристики являются сетевой точностью, скоростью и размером. Выбор сети обычно является компромиссом между этими характеристиками. Для получения дополнительной информации смотрите Предварительно обученные Глубокие нейронные сети.

Открытый эксперимент

Во-первых, откройте пример. Experiment Manager загружает проект с предварительно сконфигурированным экспериментом, который можно смотреть и запустить. Чтобы открыть эксперимент, в панели Браузера Эксперимента, дважды кликают имя эксперимента (TransferLearningExperiment).

Определение эксперимента состоит из описания, таблицы гиперпараметров, функции настройки, и (опционально) набора метрических функций, чтобы оценить результаты эксперимента. Для получения дополнительной информации смотрите, Конфигурируют Эксперимент Глубокого обучения.

Поле Description содержит текстовое описание эксперимента. В данном примере описание:

Perform transfer learning by replacing layers in a pretrained network.

Раздел Hyperparameters задает стратегию (Exhaustive Sweep) и гиперзначения параметров, чтобы использовать для эксперимента. Когда вы запускаете эксперимент, Experiment Manager обучает сеть с помощью каждой комбинации гиперзначений параметров, заданных в гипертаблице параметров. В этом примере, гиперпараметр NetworkName задает сеть, чтобы обучаться и значение опции обучения 'miniBatchSize'.

Функция Setup конфигурирует обучающие данные, сетевую архитектуру и опции обучения для эксперимента. Чтобы смотреть функцию настройки, под Функцией Setup, нажимают Edit. Функция настройки открывается в Редакторе MATLAB®.

В этом примере, функции настройки:

  • Загрузки и извлечения Цветочный набор данных, который составляет приблизительно 218 Мбайт. Для получения дополнительной информации об этом наборе данных смотрите Наборы Данных изображения.

  • Загружает предварительно обученную сеть, соответствующую гиперпараметру NetworkName. Вспомогательный функциональный findLayersToReplace определяет слои в сетевой архитектуре, чтобы заменить для передачи обучения. Для получения дополнительной информации о доступных предварительно обученных сетях смотрите Предварительно обученные Глубокие нейронные сети.

  • Задает trainingOptions объект для эксперимента. Пример обучает сеть в течение 10 эпох, с помощью начальной скорости обучения 0,0003 и проверяя сеть каждые 5 эпох.

Раздел Metrics задает дополнительные функции, которые оценивают результаты эксперимента. Этот пример не включает пользовательских метрических функций.

Запустите эксперимент

Когда вы запускаете эксперимент, Experiment Manager обучает сеть, заданную функцией настройки шесть раз. Каждое испытание использует различную комбинацию гиперзначений параметров. По умолчанию Experiment Manager запускает одно испытание за один раз. Если у вас есть Parallel Computing Toolbox™, можно запустить несколько испытаний одновременно. Для лучших результатов, прежде чем вы запустите свой эксперимент, начинают параллельный пул со стольких же рабочих сколько графические процессоры. Для получения дополнительной информации смотрите Использование Experiment Manager, чтобы Обучить нейронные сети параллельно.

  • Чтобы запустить один суд над экспериментом за один раз, в панели инструментов Experiment Manager, нажимают Run.

  • Чтобы запустить несколько испытаний одновременно, нажмите Use Parallel и затем Запуск. Если нет никакого текущего параллельного пула, Experiment Manager запускает тот с помощью кластерного профиля по умолчанию. Experiment Manager затем выполняет несколько одновременных испытаний, в зависимости от количества параллельных доступных рабочих.

Таблица результатов показывает точность и потерю для каждого испытания.

В то время как эксперимент запускается, нажмите Training Plot, чтобы отобразить учебный график и отследить прогресс каждого испытания.

Нажмите Confusion Matrix, чтобы отобразить матрицу беспорядка для данных о валидации в каждом завершенном испытании.

Когда эксперимент заканчивается, можно отсортировать таблицу результатов по столбцу или отфильтровать испытания при помощи панели Фильтров. Для получения дополнительной информации смотрите сортировку и Результаты Эксперимента Фильтра.

Чтобы проверить производительность отдельного испытания, экспортируйте обучивший сеть или учебную информацию для испытания. На панели инструментов Experiment Manager выберите Export> Trained Network или Export> Training Information, соответственно. Для получения дополнительной информации смотрите сеть и информацию.

Закройте эксперимент

В панели Браузера Эксперимента щелкните правой кнопкой по имени проекта и выберите Close Project. Experiment Manager закрывает все эксперименты и результаты, содержавшиеся в проекте.

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

| | |

Похожие темы