Spec-Zone.ru › TensorFlow 2.9

tf.keras.optimizers.legacy.Adam

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

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

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

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

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

tf.compat.v1.keras.optimizers.legacy.Adam

tf.keras.optimizers.legacy.Adam(
    learning_rate=0.001,
    beta_1=0.9,
    beta_2=0.999,
    epsilon=1e-07,
    amsgrad=False,
    name='Adam',
    **kwargs
)

Оптимизация Adam — это метод стохастического градиентного спуска, основанный на адаптивной оценке моментов первого и второго порядка.

Согласно Kingma et al., 2014, метод «вычислительно эффективен, имеет небольшие требования к памяти, инвариантен к диагональному масштабированию градиентов и хорошо подходит для задач, больших по объёму данных/параметров».

Аргументы
learning_rate Значение с плавающей запятой, или расписание, являющееся tf.keras.optimizers.schedules.LearningRateSchedule, или функция, не принимающая аргументов и возвращающая фактическое используемое значение. Скорость обучения. По умолчанию 0,001.
beta_1 Вещественное значение или постоянный тензор с плавающей запятой, или функция, не принимающая аргументов и возвращающая фактическое используемое значение. Экспоненциальная скорость затухания для оценок момента 1-го порядка. По умолчанию 0,9.
beta_2 Вещественное значение или постоянный тензор с плавающей запятой, или функция, не принимающая аргументов и возвращающая фактическое используемое значение. Экспоненциальная скорость затухания для оценок момента 2-го порядка. По умолчанию 0,999.
epsilon Небольшая константа для обеспечения числовой устойчивости. Этот параметр epsilon — это «epsilon hat» в статье Kingma и Ba (в формуле непосредственно перед разделом 2.1), а не epsilon в Алгоритме 1 статьи. По умолчанию 1e-7.
amsgrad Булево значение. Применять ли вариант AMSGrad этого алгоритма из статьи "On the Convergence of Adam and beyond". По умолчанию False.
name Необязательное имя для операций, созданных при применении градиентов. По умолчанию "Adam".
**kwargs Дополнительные аргументы. Разрешены аргументы clipvalue, clipnorm, global_clipnorm. Если задан clipvalue (вещественное число), градиент каждого веса ограничен значением, не превышающим это значение. Если задан clipnorm (вещественное число), градиент каждого веса ограничен индивидуально, так чтобы его норма не превышала этого значения. Если задан global_clipnorm (вещественное число), градиент всех весов ограничен по глобальной норме значением, не превышающим это значение.

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

opt = tf.keras.optimizers.Adam(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()
# The first step is `-learning_rate*sign(grad)`
var1.numpy()
9.9

Ссылка:

  • Kingma et al., 2014
  • Reddi et al., 2018 для amsgrad.

Примечания:

Значение по умолчанию 1e-7 для epsilon может не быть хорошим по умолчанию в целом. Например, при обучении сети Inception на ImageNet, текущий хороший выбор — 1.0 или 0.1. Обратите внимание, что поскольку Adam использует формулировку, предшествующую разделу 2.1 статьи Kingma и Ba, а не формулировку в Алгоритме 1, «epsilon», о котором здесь говорится, — это «epsilon hat» в статье.

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

Исключения
ValueError в случае любого неверного аргумента.

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

Spec-Zone.ru

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