Spec-Zone.ru › TensorFlow 2.9

tf.keras.optimizers.RMSprop

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

Оптимизатор, реализующий алгоритм RMSprop.

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

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

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

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

tf.compat.v1.keras.optimizers.RMSprop

tf.keras.optimizers.RMSprop(
    learning_rate=0.001,
    rho=0.9,
    momentum=0.0,
    epsilon=1e-07,
    centered=False,
    name='RMSprop',
    **kwargs
)

Суть RMSprop заключается в:

  • Поддержание скользящего (с дисконтированием) среднего квадрата градиентов
  • Деление градиента на корень из этого среднего значения

Эта реализация RMSprop использует обычный момент, а не момент Нестерова.

Центрированная версия дополнительно поддерживает скользящее среднее градиентов и использует это среднее для оценки дисперсии.

Аргументы
learning_rate Значение с плавающей запятой, или расписание, которое является tf.keras.optimizers.schedules.LearningRateSchedule, или вызываемый объект без аргументов, возвращающий фактическое значение для использования. Скорость обучения. По умолчанию 0,001.
rho Коэффициент дисконтирования для истории/приходящего градиента. По умолчанию 0,9.
momentum Скаляр или скалярный Tensor. По умолчанию 0,0.
epsilon Малая константа для обеспечения числовой устойчивости. Эта ε является "ε шляпа" в документе Кингмы и Ба (в формуле перед разделом 2.1), а не ε в Алгоритме 1 документа. По умолчанию 1e-7.
centered Булево значение. Если True, градиенты нормализуются с помощью оценки дисперсии градиента; если False, с помощью нецентрированного второго момента. Установка этого значения в True может помочь в обучении, но немного дороже в вычислительном отношении и по памяти. По умолчанию False.
name Необязательное префиксное имя для операций, созданных при применении градиентов. По умолчанию "RMSprop".
**kwargs дополнительные ключевые аргументы. Разрешенные аргументы clipvalue, clipnorm, global_clipnorm. Если clipvalue (float) задано, градиент каждого веса ограничен сверху этим значением. Если clipnorm (float) задано, градиент каждого веса ограничен сверху по норме. Если global_clipnorm (float) задано, градиент всех весов ограничен сверху по глобальной норме.

Обратите внимание, что в плотной реализации этого алгоритма переменные и их соответствующие аккумуляторы (момент, скользящее среднее градиента, скользящее среднее квадрата градиента) будут обновляться, даже если градиент равен нулю (т.е. аккумуляторы будут убывать, момент будет применен). Разреженная реализация (используется, когда градиент является объектом IndexedSlices, обычно из-за tf.gather или поиска вложения в прямом проходе) не будет обновлять фрагменты переменных или их аккумуляторы, если эти фрагменты не использовались в прямом проходе (также нет "постепенного" исправления, чтобы учесть эти пропущенные обновления). Это приводит к более эффективным обновлениям для больших таблиц вложений (где большинство фрагментов не обращаются в конкретном выполнении графа), но отличается от опубликованного алгоритма.

Использование:

opt = tf.keras.optimizers.RMSprop(learning_rate=0.1)
var1 = tf.Variable(10.0)
loss = lambda: (var1 ** 2) / 2.0    # d(loss) / d(var1) = var1
step_count = opt.minimize(loss, [var1]).numpy()
var1.numpy()
9.683772

Ссылка:

  • Хинтон, 2012

© 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/RMSprop

Spec-Zone.ru

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