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=None
)
См. Loshchilov & Hutter, ICLR2016, SGDR: Stochastic Gradient Descent with Warm Restarts.
При обучении модели часто бывает полезно уменьшать скорость обучения по мере прохождения обучения. Это расписание применяет функцию косинусного распада с перезапусками к шагу оптимизатора, учитывая заданную начальную скорость обучения. Для вычисления уменьшенной скорости обучения требуется значение step. Вы можете просто передать переменную TensorFlow, которую вы увеличиваете на каждом шаге обучения.
Расписание представляет собой вызываемый объект с одним аргументом, который выдает уменьшенную скорость обучения при передаче текущего шага оптимизатора. Это может быть полезно для изменения значения скорости обучения при различных вызовах функций оптимизатора.
Множитель скорости обучения сначала уменьшается от 1 до alpha за first_decay_steps шагов. Затем выполняется тёплый перезапуск. Каждый новый тёплый перезапуск выполняется в t_mul раз больше шагов и с m_mul раз начальной скоростью обучения в качестве новой скорости обучения.
Пример использования:
first_decay_steps = 1000
lr_decayed_fn = (
tf.keras.optimizers.schedules.CosineDecayRestarts(
initial_learning_rate,
first_decay_steps))
Вы можете передать это расписание непосредственно в tf.keras.optimizers.Optimizer в качестве скорости обучения. Расписание скорости обучения также сериализуется и десериализуется с помощью tf.keras.optimizers.schedules.serialize и tf.keras.optimizers.schedules.deserialize.
| Возвращает | |
|---|---|
Вызываемый объект с одним аргументом, расписание скорости обучения, которое принимает текущий шаг оптимизатора и выводит уменьшенную скорость обучения, скалярный Tensor того же типа, что и initial_learning_rate. |
| Аргументы | |
|---|---|
initial_learning_rate | Скалярный float32 или float64 тензор или число Python. Начальная скорость обучения. |
first_decay_steps | Скалярный int32 или int64 Tensor или число Python. Количество шагов для уменьшения. |
t_mul | Скалярный float32 или float64 Tensor или число Python. Используется для вывода количества итераций в i-м периоде. |
m_mul | Скалярный float32 или float64 Tensor или число Python. Используется для вывода начальной скорости обучения i-го периода. |
alpha | Скалярный float32 или float64 тензор или число Python. Минимальное значение скорости обучения как доля initial_learning_rate. |
name | Строка. Необязательное имя операции. По умолчанию 'SGDRDecay'. |
Методы
from_config
@classmethod
from_config(
config
)
Создаёт экземпляр LearningRateSchedule из его конфигурации.
| Аргументы | |
|---|---|
config | Результат get_config(). |
| Возвращает | |
|---|---|
Экземпляр LearningRateSchedule. |
get_config
get_config()
__call__
__call__(
step
)
Вызов self как функции.
© 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/versions/r2.9/api_docs/python/tf/keras/optimizers/schedules/CosineDecayRestarts