Оптимизировать скорость обучения Tensorflow

Как я могу найти лучшую скорость обучения и скорость распада динамически? Есть ли встроенная функция?
Такая функция, как tf.train.exponential_decay, не может быть изменена динамически в зависимости от различных случаев, поскольку начальная скорость и скорость затухания предварительно определены. Спасибо!!!

1 ответ

Это открытая исследовательская проблема, но при больших партиях обратный поиск строки может быть полезен.

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

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

В TensorFlow нет встроенного примитива для этого, но вы можете реализовать его с помощью операций низкого уровня. Вот полный пример использования автоэнкодера MNIST: https://github.com/yaroslavvb/stuff/tree/master/line_search_example

Скорость обучения быстро возрастает до 0,05, а затем, после того как вы сблизились, она не может прогрессировать, поэтому она падает до нуля.

Другие вопросы по тегам