Вы - учёные, работающие с данными, или инженер по данным, которые хотят иметь полный контроль над своими моделями Keras и избавиться от бессмысленных скачков и поиска параметров?

Оптимизация гиперпараметров обычно требует обучения модели несколько раз с различными конфигурациями, что означает, что требуется быстрый компьютер с несколькими видеокартами, чтобы уменьшить время задержки за счет более быстрого обучения моделей. Прочитав этот пост, вы сможете настроить свою модель Keras для экспериментов по оптимизации гиперпараметров в 3 раза быстрее и бесплатно получить самые современные TPU по сравнению с запуском той же настройки на моем одиночном GTX1070.

Основываясь на моем опыте использования нескольких решений для оптимизации гиперпараметров с открытым исходным кодом с поддержкой Keras, Talos предлагает наиболее интуитивно понятный, простой в освоении и неограниченный доступ к важным возможностям оптимизации гиперпараметров. Давайте проведем эксперимент по поиску лучших параметров модели CNN для прогнозирования модных наборов данных MNIST с помощью Talos.

Базовый ноутбук с оптимизацией гиперпараметров на моем единственном графическом процессоре GTX1070 и версия TPU доступны на моем GitHub.

Подготовьте модель Keras для оптимизации гиперпараметров

В отличие от некоторых других инструментов поиска нейронной архитектуры, таких как Auto-Keras, в процессе оптимизации гиперпараметров нет черного ящика, и вы можете указать параметры для поиска по параметрам.

Рассмотрим модель CNN-кандидата в Keras для задачи классификации модного MNIST, которую вы обычно пишете.

Чтобы подготовить модель к сканированию Talos для получения оптимальных гиперпараметров, просто замените те, которые вы хотите включить в сканирование, ссылками на свой словарь параметров, как показано ниже:

Значение params будет словарем, передаваемым в функцию fashion_mnist_fn во время сканирования динамически, когда выполняется сканирование Talos. Поймите, что функция будет возвращать выходные данные метрик истории model.fit() вместе с самой моделью, чтобы сканер Talos мог оценить производительность модели после обучения.

Вот как вы определяете список гиперпараметров и начинаете поиск.

Talos поддерживает несколько общих стратегий оптимизации: для простейшего поиска по сетке комбинация параметров будет вставлена ​​в fashion_mnist_fn, который вы определили ранее для обучения модели.

Запустить гиперпараметрическое сканирование на TPU

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

Однако, чтобы выполнить весь процесс намного быстрее с Cloud TPU, необходимо выполнить некоторые дополнительные действия после построения модели и преобразования модели в модель TPU.

Поймите, что различия происходят на шагах 1, 3 и 4. Размер пакета 1024 будет равномерно разделен на 8 ядер TPU с каждым обучением на пакете из 128 входных выборок.

После завершения сканирования вы восстанавливаете индекс лучшей модели с наивысшей точностью проверки или другими метриками по вашему выбору.

Контрольный показатель и заключение

Чтобы полностью обучить 8 вариантов CNN с переменными гиперпараметрами на TPU, потребовалось 12:29 по сравнению с обучением 40:18 на моем GTX 1070.

Не забудьте проверить работоспособный блокнот Colab для этого руководства и его аналог Jupyter для GPU / CPU на моем GitHub.

Хотите обучить модель RNN Keras в 20 раз быстрее с TPU? Читайте мой предыдущий пост - Как бесплатно обучить модель Keras в 20 раз быстрее с TPU.

Также читайте подробнее о Talos на Github.

Поделиться в Twitter Поделиться в Facebook

Первоначально опубликовано на www.dlology.com.



Эта история опубликована в The Startup, крупнейшем предпринимательском издании Medium, за которым следят +393 714 человек.

Подпишитесь, чтобы получать наши главные новости здесь.