Spec-Zone.ru › TensorFlow 2.4

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 — гауссовский шум с центром 0 и дисперсией 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 Tensor или число 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 и др., 2017 (pdf) Стохастический градиентный спуск с тепловым перезапуском: Loshchilov и др., 2017 (pdf)

Совместимость с Eager Execution

При включенном режиме Eager Execution эта функция возвращает функцию, которая в свою очередь возвращает тензор затухающей скорости обучения. Это может быть полезно для изменения значения скорости обучения при различных вызовах функций оптимизатора.

© 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/r2.4/api_docs/python/tf/compat/v1/train/noisy_linear_cosine_decay

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API