Spec-Zone.ru › TensorFlow 1.15

tf.train.polynomial_decay

Применяет полиномиальное затухание к скорости обучения.

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

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

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

tf.compat.v1.train.polynomial_decay

tf.train.polynomial_decay(
    learning_rate, global_step, decay_steps, end_learning_rate=0.0001, power=1.0,
    cycle=False, name=None
)

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

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

Функция возвращает затухающую скорость обучения. Она вычисляется следующим образом:

global_step = min(global_step, decay_steps)
decayed_learning_rate = (learning_rate - end_learning_rate) *
                        (1 - global_step / decay_steps) ^ (power) +
                        end_learning_rate

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

decay_steps = decay_steps * ceil(global_step / decay_steps)
decayed_learning_rate = (learning_rate - end_learning_rate) *
                        (1 - global_step / decay_steps) ^ (power) +
                        end_learning_rate

Пример: затухание от 0,1 до 0,01 за 10000 шагов с использованием sqrt (т.е. power=0,5):

...
global_step = tf.Variable(0, trainable=False)
starter_learning_rate = 0.1
end_learning_rate = 0.01
decay_steps = 10000
learning_rate = tf.compat.v1.train.polynomial_decay(starter_learning_rate,
global_step,
                                          decay_steps, end_learning_rate,
                                          power=0.5)
# Passing global_step to minimize() will increment it at each step.
learning_step = (
    tf.compat.v1.train.GradientDescentOptimizer(learning_rate)
    .minimize(...my loss..., global_step=global_step)
)
Аргументы
learning_rate Скаляр float32 или float64 Tensor или число Python. Начальная скорость обучения.
global_step Скаляр int32 или int64 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'.
Возвращаемое значение
Скаляр Tensor того же типа, что и learning_rate. Затухающая скорость обучения.
Исключения
ValueError если global_step не указано.

Совместимость с Eager

При включенном режиме eager execution, эта функция возвращает функцию, которая в свою очередь возвращает тензор затухающей скорости обучения. Это может быть полезно для изменения значения скорости обучения при различных вызовах функций оптимизатора.

© 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/r1.15/api_docs/python/tf/train/polynomial_decay

Spec-Zone.ru

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