Spec-Zone.ru › TensorFlow 2.3

tf.keras.experimental.CosineDecay

Просмотреть исходный код на GitHub

Расписание изменения скорости обучения, использующее расписание с убыванием по косинусу.

Наследуется от: LearningRateSchedule

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

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

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

tf.compat.v1.keras.experimental.CosineDecay

tf.keras.experimental.CosineDecay(
    initial_learning_rate, decay_steps, alpha=0.0, name=None
)

См. [Loshchilov & Hutter, ICLR2016], SGDR: Stochastic Gradient Descent with Warm Restarts. https://arxiv.org/abs/1608.03983

При обучении модели часто рекомендуется уменьшать скорость обучения по мере прогресса обучения. Это расписание применяет функцию убывания по косинусу к шагу оптимизатора, заданному начальной скоростью обучения. Оно требует значения step для вычисления уменьшенной скорости обучения. Вы можете просто передать переменную TensorFlow, которую вы увеличиваете на каждом шаге обучения.

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

def decayed_learning_rate(step):
  step = min(step, decay_steps)
  cosine_decay = 0.5 * (1 + cos(pi * step / decay_steps))
  decayed = (1 - alpha) * cosine_decay + alpha
  return initial_learning_rate * decayed

Пример использования:

decay_steps = 1000
lr_decayed_fn = tf.keras.experimental.CosineDecay(
    initial_learning_rate, decay_steps)

Вы можете передать это расписание напрямую в tf.keras.optimizers.Optimizer в качестве скорости обучения. Расписание изменения скорости обучения также сериализуемо и десериализуемо с помощью tf.keras.optimizers.schedules.serialize и tf.keras.optimizers.schedules.deserialize.

Возвращаемое значение
Расписание изменения скорости обучения с 1 аргументом, которое принимает текущий шаг оптимизатора и возвращает уменьшенную скорость обучения, скаляр Tensor того же типа, что и initial_learning_rate.
Аргументы
initial_learning_rate Скаляр float32 или float64 тензор или число Python. Начальная скорость обучения.
decay_steps Скаляр int32 или int64 Tensor или число Python. Количество шагов для убывания.
alpha Скаляр float32 или float64 тензор или число Python. Минимальное значение скорости обучения как доля initial_learning_rate.
name Строка. Необязательное имя операции. По умолчанию равно 'CosineDecay'.

Методы

from_config

Просмотреть исходный код

@classmethod
from_config(
    config
)

Инициализирует LearningRateSchedule по его конфигурации.

Аргументы
config Результат get_config().
Возвращаемое значение
Экземпляр LearningRateSchedule

get_config

Просмотреть исходный код

get_config()

__call__

Просмотреть исходный код

__call__(
    step
)

Вызов self как функции.

© 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.3/api_docs/python/tf/keras/experimental/CosineDecay

Spec-Zone.ru

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