Spec-Zone.ru › TensorFlow 2.3

tf.keras.experimental.NoisyLinearCosineDecay

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

Расписание для скорости обучения, использующее шумное линейное косинусное расписание.

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

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

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

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

tf.compat.v1.keras.experimental.NoisyLinearCosineDecay

tf.keras.experimental.NoisyLinearCosineDecay(
    initial_learning_rate, decay_steps, initial_variance=1.0, variance_decay=0.55,
    num_periods=0.5, alpha=0.0, beta=0.001, name=None
)

См. [Bello и др., ICML2017] Поиск нейронного оптимизатора с помощью RL. https://arxiv.org/abs/1709.07417

По идее «теплого старта», управляемого num_periods, см. [Loshchilov & Hutter, ICLR2016] SGDR: Стохастический градиентный спуск с повторными холодными запусками. https://arxiv.org/abs/1608.03983

Обратите внимание, что линейное косинусное расписание более агрессивное, чем косинусное расписание, и обычно можно использовать более высокие начальные скорости обучения.

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

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

def decayed_learning_rate(step):
  step = min(step, decay_steps)
  linear_decay = (decay_steps - step) / decay_steps)
  cosine_decay = 0.5 * (
      1 + cos(pi * 2 * num_periods * step / decay_steps))
  decayed = (alpha + linear_decay + eps_t) * cosine_decay + beta
  return initial_learning_rate * decayed

где eps_t — гауссовский шум со средним значением 0 и дисперсией initial_variance / (1 + global_step) ** variance_decay

Пример использования:

decay_steps = 1000
lr_decayed_fn = (
  tf.keras.experimental.NoisyLinearCosineDecay(
    initial_learning_rate, decay_steps))

Вы можете напрямую передать это расписание в tf.keras.optimizers.Optimizer в качестве скорости обучения. Расписание скорости обучения также сериализуемо и десериализуемо с помощью 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. Количество шагов для распада.
initial_variance Начальная дисперсия для шума. См. вычисление выше.
variance_decay Дисперсия шума. См. вычисление выше.
num_periods Количество периодов в косинусной части распада. См. вычисление выше.
alpha См. вычисление выше.
beta См. вычисление выше.
name Строка. Необязательное имя операции. По умолчанию 'NoisyLinearCosineDecay'.

Методы

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/NoisyLinearCosineDecay

Spec-Zone.ru

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