Spec-Zone.ru › TensorFlow 2.4

tf.keras.optimizers.RMSprop

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

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

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

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

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

tf.optimizers.RMSprop

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

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

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 Значение типа float или расписание, которое является tf.keras.optimizers.schedules.LearningRateSchedule, или вызываемая функция без аргументов, возвращающая фактическое значение для использования. Скорость обучения. По умолчанию 0.001.
rho Коэффициент дисконтирования для истории/приходящего градиента. По умолчанию 0.9.
momentum Скаляр или скалярный Tensor. По умолчанию 0.0.
epsilon Маленькая константа для обеспечения числовой устойчивости. Эта epsilon — это «epsilon hat» в документе Kingma и Ba (в формуле перед разделом 2.1), а не epsilon в алгоритме 1 документа. По умолчанию 1e-7.
centered Булево значение. Если True, градиенты нормализуются по оцененной дисперсии градиента; если False, по неопределенному второму моменту. Установка этого значения в True может помочь при обучении, но немного дороже в вычислительном отношении и по памяти. По умолчанию False.
name Необязательное имя-префикс для операций, создаваемых при применении градиентов. По умолчанию "RMSprop".
**kwargs Аргументы ключевых слов. Разрешено быть одним из "clipnorm" или "clipvalue". "clipnorm" (float) ограничивает градиенты по норме; "clipvalue" (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

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

Spec-Zone.ru

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