tf.keras.optimizers.legacy.RMSprop
Оптимизатор, реализующий алгоритм RMSprop.
Наследуется от: RMSprop, Optimizer
tf.keras.optimizers.legacy.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 | Небольшая константа для обеспечения числовой устойчивости. Эта переменная epsilon - "epsilon hat" в статье Kingma и Ba (в формуле перед разделом 2.1), а не epsilon в алгоритме 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
Ссылка:
© 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/legacy/RMSprop