Spec-Zone.ru › TensorFlow 1.15

tf.train.noisy_linear_cosine_decay

Применяет шумное линейное косинусное затухание к скорости обучения.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.train.noisy_linear_cosine_decay

tf.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
)

См. [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 + 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 тензор или число 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 не предоставлен.

Совместимость с 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/noisy_linear_cosine_decay

Spec-Zone.ru

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