tf.compat.v1.train.noisy_linear_cosine_decay
Применяет шумовое линейное косинусное затухание к скорости обучения.
tf.compat.v1.train.noisy_linear_cosine_decay(
learning_rate,
global_step,
decay_steps,
initial_variance=1.0,
variance_decay=0.55,
num_periods=0.5,
alpha=0.0,
beta=0.001,
name=None
)
Обратите внимание, что линейное косинусное затухание более агрессивно, чем косинусное затухание, и обычно можно использовать более высокие начальные скорости обучения.
При обучении модели часто рекомендуется снижать скорость обучения по мере продолжения обучения. Эта функция применяет функцию шумового линейного косинусного затухания к заданной начальной скорости обучения. Для вычисления затухающей скорости обучения требуется значение 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 + eps_t) * cosine_decay + beta
decayed_learning_rate = learning_rate * decayed
где eps_t — гауссовский шум с нулевым средним и дисперсией initial_variance / (1 + global_step) ** variance_decay
Пример использования:
decay_steps = 1000 lr_decayed = noisy_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. Количество шагов, за которое происходит затухание. |
initial_variance | Начальная дисперсия шума. См. вычисление выше. |
variance_decay | Скорость затухания дисперсии шума. См. вычисление выше. |
num_periods | Количество периодов в косинусной части затухания. См. вычисление выше. |
alpha | См. вычисление выше. |
beta | См. вычисление выше. |
name | Строка. Необязательное имя операции. По умолчанию — 'NoisyLinearCosineDecay'. |
| Возвращает | |
|---|---|
Скалярный Tensor того же типа, что и learning_rate. Затухающая скорость обучения. |
| Вызывает исключение | |
|---|---|
ValueError | если не указано global_step. |
| Ссылки | |
|---|---|
| Поиск нейросетевого оптимизатора с помощью обучения с подкреплением: Bello et al., 2017 (PDF) Стохастический градиентный спуск с тёплыми перезапусками: Loshchilov et al., 2017 (PDF) |
Совместимость с eager execution
При включённом eager execution эта функция возвращает функцию, которая, в свою очередь, возвращает тензор затухающей скорости обучения. Это может быть полезно для изменения значения скорости обучения при разных вызовах функций оптимизатора.
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/compat/v1/train/noisy_linear_cosine_decay