обучение набора данных: сходятся на настройке параметров и предварительно обученные модели - PullRequest
0 голосов
/ 26 октября 2019

Я недавно завершил «довольно хорошую» модель TF2 / keras для распознавания изображений, используя несколько слоев, оптимизацию SGD И начиная с предварительно обученной модели MobileNetv2.

Я мог бы подстроить это навсегда: добавив/ удаление слоев, различные алгоритмы оптимизации, скорость обучения, импульс, различные расширения набора данных и т. д. И я даже не думал начинать с других предварительно обученных моделей. Я изменил оптимизатор с SGD на ADAM (что должно быть лучше, верно?), И он стал немного более неточным.

Итак, как мне сойтись на лучшей предварительно обученной модели, параметрах, значениях? Это просто метод проб и ошибок? Обучение моей модели (10 эпох) занимает около 45 минут, что кажется вечным, когда я настраиваю так много переменных.

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

1 Ответ

1 голос
/ 26 октября 2019

Я не знаю, подходит ли этот вопрос SO или нет.

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

Существуют также более продвинутые методы, использующие байесовскую оптимизацию для автоматизации этого процесса.

Один общий иустановленный инструмент для оптимизации гиперпараметров в сообществе ML называется hyperopt.

https://github.com/hyperopt/hyperopt

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

Кроме того, поскольку вы пометили Keras в вопросе, существует инструмент под названием auto keras, который также ищет гиперпараметры https://autokeras.com/

Auto-Keras предоставляет функции для автоматического поиска архитектуры и гиперпараметров моделей глубокого обучения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...