tf.keras.optimizers.Adamax
| Просмотреть исходный код на GitHub |
Оптимизатор, реализующий алгоритм Adamax.
Наследуется от: Optimizer
tf.keras.optimizers.Adamax(
learning_rate=0.001,
beta_1=0.9,
beta_2=0.999,
epsilon=1e-07,
name='Adamax',
**kwargs
)
Это вариант Adam, основанный на бесконечной норме. Значения параметров по умолчанию соответствуют параметрам, предоставленным в статье. Adamax иногда превосходит adam, особенно в моделях с вложениями.
Инициализация:
m = 0 # Initialize initial 1st moment vector v = 0 # Initialize the exponentially weighted infinity norm t = 0 # Initialize timestep
Правило обновления для параметра w с градиентом g описано в конце раздела 7.1 статьи:
t += 1 m = beta1 * m + (1 - beta) * g v = max(beta2 * v, abs(g)) current_lr = learning_rate / (1 - beta1 ** t) w = w - current_lr * m / (v + epsilon)
Аналогично Adam, для обеспечения числовой устойчивости добавляется epsilon (особенно для устранения деления на ноль, когда v_t == 0).
В отличие от Adam, в разреженной реализации этого алгоритма (используется, когда градиент является объектом IndexedSlices, обычно из-за tf.gather или поиска вложений в прямом проходе) обновляются только срезы переменных и соответствующие m_t, v_t члены, когда эта часть переменной использовалась в прямом проходе. Это означает, что поведение разреженной реализации отличается от плотного (аналогично некоторым реализациям импульса, которые игнорируют импульс, если срез переменной не был фактически использован).
| Аргументы | |
|---|---|
learning_rate | Значение с плавающей точкой, или расписание, которое является tf.keras.optimizers.schedules.LearningRateSchedule. Скорость обучения. |
beta_1 | Вещественное значение или постоянный тензор с плавающей точкой. Скорость экспоненциального затухания для оценок первого момента. |
beta_2 | Вещественное значение или постоянный тензор с плавающей точкой. Скорость экспоненциального затухания для экспоненциально взвешенной бесконечной нормы. |
epsilon | Небольшая константа для обеспечения числовой устойчивости. |
name | Необязательное имя для операций, созданных при применении градиентов. По умолчанию "Adamax". |
**kwargs | дополнительные аргументы. Разрешенные аргументы — clipvalue, clipnorm, global_clipnorm. Если clipvalue (вещественное число) установлено, градиент каждого веса ограничен сверху этим значением. Если clipnorm (вещественное число) установлено, градиент каждого веса индивидуально ограничен сверху по норме этим значением. Если global_clipnorm (вещественное число) установлено, градиент всех весов ограничен сверху по глобальной норме этим значением. |
Ссылка:
| Исключения | |
|---|---|
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/Adamax