tf.keras.optimizers.legacy.Adamax
Оптимизатор, реализующий алгоритм Adamax.
Наследует от: Adamax, Optimizer
tf.keras.optimizers.legacy.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 | Значение типа float, или расписание, которое является 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/legacy/Adamax