Spec-Zone.ru › TensorFlow 2.9

tf.keras.optimizers.Adam

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

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

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

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

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

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

tf.compat.v1.keras.optimizers.Adam

tf.keras.optimizers.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 Небольшая константа для обеспечения числовой устойчивости. Эта ε — это «ε шляпа» в статье Kingma и Ba (в формуле перед разделом 2.1), а не ε в Алгоритме 1 статьи. По умолчанию 1e-7.
amsgrad Булево значение. Применять ли вариант AMSGrad этого алгоритма из статьи «О сходимости Adam и за его пределами». По умолчанию 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, «ε» здесь обозначает «ε шляпа» в статье.

Реализация этого алгоритма в разреженном формате (используется, когда градиент — это объект 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/Adam

Spec-Zone.ru

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