tf.keras.experimental.CosineDecayRestarts
| Просмотреть исходный код на GitHub |
Расписание скорости обучения, использующее расписание с косинусной деградацией с перезапусками.
Наследуется от: LearningRateSchedule
tf.keras.experimental.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. https://arxiv.org/abs/1608.03983
При обучении модели часто рекомендуется уменьшать скорость обучения по мере прогресса обучения. Это расписание применяет функцию косинусной деградации с перезапусками к шагу оптимизатора, учитывая предоставленную начальную скорость обучения. Для вычисления деградированной скорости обучения требуется step значение. Вы можете просто передать TensorFlow-переменную, которую вы инкрементируете на каждом шаге обучения.
Расписание — это вызываемая функция с 1 аргументом, которая возвращает деградированную скорость обучения при передаче текущего шага оптимизатора. Это может быть полезно для изменения значения скорости обучения при разных вызовах функций оптимизатора.
Множитель скорости обучения сначала деградирует с 1 до alpha за first_decay_steps шагов. Затем выполняется перезапуск. Каждый новый перезапуск выполняется в t_mul раз больше шагов и с m_mul раз меньшей начальной скоростью обучения.
Пример использования:
first_decay_steps = 1000
lr_decayed_fn = (
tf.keras.experimental.CosineDecayRestarts(
initial_learning_rate,
first_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 Tensor или число 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 Tensor или число 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 как функции.
© 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/CosineDecayRestarts