Spec-Zone.ru › TensorFlow

tf.keras.optimizers.schedules.CosineDecayRestarts

LearningRateSchedule, использующий расписание косинусного затухания с перезапусками.

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

tf.keras.optimizers.schedules.CosineDecayRestarts(
    initial_learning_rate,
    first_decay_steps,
    t_mul=2.0,
    m_mul=1.0,
    alpha=0.0,
    name='SGDRDecay'
)

См. Loshchilov & Hutter, ICLR2016, SGDR: стохастический градиентный спуск с тёплыми перезапусками.

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

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

Множитель скорости обучения сначала затухает от 1 до alpha за first_decay_steps шагов. Затем выполняется тёплый перезапуск. Каждый следующий тёплый перезапуск длится в t_mul раз больше шагов, а новая скорость обучения составляет m_mul от начальной скорости обучения.

Пример:

first_decay_steps = 1000
lr_decayed_fn = (
    keras.optimizers.schedules.CosineDecayRestarts(
        initial_learning_rate,
        first_decay_steps))

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

Аргументы
initial_learning_rate Число с плавающей точкой Python. Начальная скорость обучения.
first_decay_steps Целое число Python. Количество шагов, за которое происходит затухание.
t_mul Число с плавающей точкой Python. Используется для вычисления количества итераций в i-м периоде.
m_mul Число с плавающей точкой Python. Используется для вычисления начальной скорости обучения в i-м периоде.
alpha Число с плавающей точкой Python. Минимальное значение скорости обучения в виде доли от initial_learning_rate.
name Строка. Необязательное имя операции. По умолчанию — "SGDRDecay".
Возвращает
Расписание скорости обучения в виде вызываемого объекта с одним аргументом, который принимает текущий шаг оптимизатора и возвращает затухающую скорость обучения — скалярный тензор того же типа, что и initial_learning_rate.

Методы

from_config

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

@classmethod
from_config(
    config
)

Создаёт экземпляр LearningRateSchedule на основе его конфигурации.

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

get_config

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

get_config()

__call__

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

__call__(
    step
)

Вызов объекта как функции.

© 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/keras/optimizers/schedules/CosineDecayRestarts

Spec-Zone.ru

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