tf.keras.experimental.CosineDecay
| Просмотреть исходный код на GitHub |
Расписание изменения скорости обучения, использующее расписание с убыванием по косинусу.
Наследуется от: LearningRateSchedule
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