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