Spec-Zone.ru › TensorFlow 2.9

tf.keras.optimizers.schedules.PolynomialDecay

View source on GitHub

Расписание LearningRateSchedule, использующее полиномиальное расписание затухания.

Наследуется от: LearningRateSchedule

Показать псевдонимы

Совместимые псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.keras.optimizers.schedules.PolynomialDecay

tf.keras.optimizers.schedules.PolynomialDecay(
    initial_learning_rate,
    decay_steps,
    end_learning_rate=0.0001,
    power=1.0,
    cycle=False,
    name=None
)

Часто наблюдается, что монотонно уменьшающаяся скорость обучения, степень изменения которой тщательно выбрана, приводит к более производительной модели. Это расписание применяет полиномиальную функцию затухания к шагу оптимизатора, учитывая заданное initial_learning_rate, чтобы достичь end_learning_rate за данный decay_steps.

Требуется значение step для вычисления уменьшенной скорости обучения. Вы можете просто передать переменную TensorFlow, которую вы увеличиваете на каждом шаге обучения.

Расписание представляет собой вызываемый объект с 1 аргументом, который возвращает уменьшенную скорость обучения при передаче текущего шага оптимизатора. Это может быть полезно для изменения значения скорости обучения при различных вызовах функций оптимизатора. Оно вычисляется как:

def decayed_learning_rate(step):
  step = min(step, decay_steps)
  return ((initial_learning_rate - end_learning_rate) *
          (1 - step / decay_steps) ^ (power)
         ) + end_learning_rate

Если cycle равно True, то используется кратное decay_steps, первое, которое больше, чем step.

def decayed_learning_rate(step):
  decay_steps = decay_steps * ceil(step / decay_steps)
  return ((initial_learning_rate - end_learning_rate) *
          (1 - step / decay_steps) ^ (power)
         ) + end_learning_rate

Вы можете передать это расписание непосредственно в tf.keras.optimizers.Optimizer в качестве скорости обучения. Пример: Обучите модель, уменьшая скорость обучения с 0,1 до 0,01 за 10000 шагов, используя квадратный корень (т.е. степень=0,5):

...
starter_learning_rate = 0.1
end_learning_rate = 0.01
decay_steps = 10000
learning_rate_fn = tf.keras.optimizers.schedules.PolynomialDecay(
    starter_learning_rate,
    decay_steps,
    end_learning_rate,
    power=0.5)

model.compile(optimizer=tf.keras.optimizers.SGD(
                  learning_rate=learning_rate_fn),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(data, labels, epochs=5)

Расписание скорости обучения также сериализуемо и десериализуемо с помощью tf.keras.optimizers.schedules.serialize и tf.keras.optimizers.schedules.deserialize.

Возвращает
Вызываемый объект с 1 аргументом, расписание скорости обучения, которое принимает текущий шаг оптимизатора и выдает уменьшенную скорость обучения, скаляр Tensor того же типа, что и initial_learning_rate.
Аргументы
initial_learning_rate Скаляр float32 или float64 Tensor или число Python. Начальная скорость обучения.
decay_steps Скаляр int32 или int64 Tensor или число Python. Должно быть положительным. См. вычисление затухания выше.
end_learning_rate Скаляр float32 или float64 Tensor или число Python. Минимальная конечная скорость обучения.
power Скаляр float32 или float64 Tensor или число Python. Степень полинома. По умолчанию линейная, 1,0.
cycle Логическое значение, следует ли продолжать цикл за пределами decay_steps.
name Строка. Необязательное имя операции. По умолчанию 'PolynomialDecay'.

Методы

from_config

View source

@classmethod
from_config(
    config
)

Создает экземпляр LearningRateSchedule из его конфигурации.

Аргументы
config Результат get_config().
Возвращает
Экземпляр LearningRateSchedule.

get_config

View source

get_config()

__call__

View source

__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/PolynomialDecay

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API