exponenta event banner

Эксперимент с инициализаторами веса для обучения переносу

В этом примере показано, как настроить эксперимент, который инициализирует веса свертки и полностью соединенных слоев с использованием различных инициализаторов веса для обучения. Чтобы сравнить производительность различных инициализаторов веса для задачи, создайте эксперимент, используя этот пример в качестве руководства.

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

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

Сначала откройте пример. Диспетчер экспериментов загружает проект с предварительно настроенным экспериментом, который можно проверить и запустить. Чтобы открыть эксперимент, в панели «Обозреватель экспериментов» дважды щелкните имя эксперимента (WeightInitializerExperiment).

Встроенные обучающие эксперименты состоят из описания, таблицы гиперпараметров, функции настройки и коллекции метрических функций для оценки результатов эксперимента. Дополнительные сведения см. в разделе Настройка встроенного учебного эксперимента.

Поле Описание содержит текстовое описание эксперимента. В этом примере приводится следующее описание:

Perform transfer learning by initializing the weights of convolution and
fully connected layers in a pretrained network.

Раздел «Гиперпараметры» определяет стратегию (Exhaustive Sweep) и значения гиперпараметров для использования в эксперименте. При выполнении эксперимента Диспетчер экспериментов обучает сеть с использованием каждой комбинации значений гиперпараметров, указанных в таблице гиперпараметров. В этом примере используются гиперпараметры WeightsInitializer и BiasInitializer задание инициализаторов веса и смещения для свёртки и полностью соединенных слоев в предварительно подготовленной сети. Дополнительные сведения об этих инициализаторах см. в разделе WeightsInitializer и BiasInitializer.

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

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

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

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

  • Определяет trainingOptions объект для эксперимента. Пример обучает сеть в течение 10 периодов, используя размер мини-партии 128 и проверяя сеть каждые 5 периодов.

В разделе «Метрики» указаны дополнительные функции, позволяющие оценить результаты эксперимента. Этот пример не включает пользовательские метрические функции.

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

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

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

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

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

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

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

По завершении эксперимента можно отсортировать таблицу результатов по столбцам, отфильтровать пробные испытания с помощью панели Фильтры (Filters) или записать наблюдения путем добавления аннотаций. Дополнительные сведения см. в разделе Сортировка, фильтрация и аннотирование результатов эксперимента.

Чтобы проверить производительность отдельного испытания, экспортируйте обученную сеть или обучающую информацию для испытания. На панели инструментов Диспетчера экспериментов выберите «Экспорт» > «Обученная сеть» или «Экспорт» > «Учебная информация» соответственно. Дополнительные сведения см. в разделе Сеть и информация.

Близкий эксперимент

На панели «Обозреватель экспериментов» щелкните правой кнопкой мыши имя проекта и выберите «Закрыть проект». Менеджер экспериментов закрывает все эксперименты и результаты, содержащиеся в проекте.

См. также

Приложения

Функции

Связанные темы