tf.train.linear_cosine_decay
Применяет линейное косинусное затухание к скорости обучения.
tf.train.linear_cosine_decay(
learning_rate, global_step, decay_steps, num_periods=0.5, alpha=0.0, beta=0.001,
name=None
)
См. [Bello и др., ICML2017] Поиск нейронного оптимизатора с помощью RL. https://arxiv.org/abs/1709.07417
Для идеи тёплых запусков, управляемых num_periods, см. [Loshchilov & Hutter, ICLR2016] SGDR: стохастический градиентный спуск с тёплыми перезапусками. https://arxiv.org/abs/1608.03983
Обратите внимание, что линейное косинусное затухание более агрессивное, чем косинусное затухание, и, как правило, можно использовать более высокие начальные скорости обучения.
При обучении модели часто рекомендуется снижать скорость обучения по мере прогресса обучения. Эта функция применяет линейную косинусную функцию затухания к предоставленной начальной скорости обучения. Она требует значения global_step, чтобы вычислить затухающую скорость обучения. Вы можете просто передать тензор TensorFlow, который вы увеличиваете на каждом шаге обучения.
Функция возвращает затухающую скорость обучения. Она вычисляется следующим образом:
global_step = min(global_step, decay_steps)
linear_decay = (decay_steps - global_step) / decay_steps)
cosine_decay = 0.5 * (
1 + cos(pi * 2 * num_periods * global_step / decay_steps))
decayed = (alpha + linear_decay) * cosine_decay + beta
decayed_learning_rate = learning_rate * decayed
Пример использования:
decay_steps = 1000 lr_decayed = linear_cosine_decay(learning_rate, global_step, decay_steps)
| Аргументы | |
|---|---|
learning_rate | Скалярный float32 или float64 тензор или число Python. Начальная скорость обучения. |
global_step | Скалярный int32 или int64 Tensor тензор или число Python. Глобальный шаг для вычисления затухания. |
decay_steps | Скалярный int32 или int64 Tensor тензор или число Python. Количество шагов затухания. |
num_periods | Количество периодов в косинусной части затухания. См. вычисление выше. |
alpha | См. вычисление выше. |
beta | См. вычисление выше. |
name | Строка. Необязательное имя операции. По умолчанию 'LinearCosineDecay'. |
| Возвращаемые значения | |
|---|---|
Скалярный Tensor того же типа, что и learning_rate. Затухающая скорость обучения. |
| Исключения | |
|---|---|
ValueError | если global_step не указано. |
Совместимость с Eager
Когда включено выполнение Eager, эта функция возвращает функцию, которая в свою очередь возвращает тензор затухающей скорости обучения. Это может быть полезно для изменения значения скорости обучения при разных вызовах функций оптимизатора.
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/train/linear_cosine_decay