Spec-Zone.ru › TensorFlow 2.3

tf.keras.optimizers.schedules.PolynomialDecay

Просмотреть исходный код на GitHub

A LearningRateSchedule, использующий полиномиальную схему распада.

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

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

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

tf.optimizers.schedules.PolynomialDecay

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

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

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 шагов с использованием квадратного корня (т. е. 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.

Возвращаемое значение
Вызываемый объект learning rate schedule с 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

Просмотреть исходный код

@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/optimizers/schedules/PolynomialDecay

Spec-Zone.ru

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