tf.keras.optimizers.schedules.CosineDecay
Расписание LearningRateSchedule, использующее график косинусного спада.
Наследуется от: LearningRateSchedule
tf.keras.optimizers.schedules.CosineDecay(
initial_learning_rate, decay_steps, alpha=0.0, name=None
)
См. Loshchilov & Hutter, ICLR2016, SGDR: Стохастический градиентный спуск с теплыми перезапусками.
При обучении модели часто бывает полезно снижать скорость обучения по мере продвижения обучения. Это расписание применяет функцию косинусного спада к шагу оптимизатора, учитывая заданную начальную скорость обучения. Для вычисления уменьшенной скорости обучения требуется значение 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.optimizers.schedules.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 как функции.
© 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/CosineDecay