Spec-Zone.ru › TensorFlow 2.4

tf.keras.optimizers.schedules.PolynomialDecay

View source on GitHub

A LearningRateSchedule that uses a polynomial decay schedule.

Inherits From: LearningRateSchedule

Просмотр псевдонимов

Основные псевдонимы

tf.optimizers.schedules.PolynomialDecay

Compat aliases for migration

See Руководство по миграции для получения дополнительных сведений.

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, которую вы увеличиваете на каждом шаге обучения.

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

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 шагов, используя sqrt (т.е. power=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.

Возвращаемое значение
Вызываемая функция со скоростью обучения с одним аргументом, которая принимает текущий шаг оптимизатора и возвращает уменьшенную скорость обучения, скаляр 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 как функции.

© 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.4/api_docs/python/tf/keras/optimizers/schedules/PolynomialDecay

Spec-Zone.ru

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