实现 Adamax 算法的优化器。
继承自:Optimizer
用法
tf.keras.optimizers.Adamax(
learning_rate=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-07,
name='Adamax', **kwargs
)
参数
-
learning_rate
Tensor
、浮点值或作为tf.keras.optimizers.schedules.LearningRateSchedule
的计划。学习率。 -
beta_1
浮点值或常量浮点张量。一阶矩估计的 index 衰减率。 -
beta_2
浮点值或常量浮点张量。 index 加权无穷范数的 index 衰减率。 -
epsilon
用于数值稳定性的小常数。 -
name
应用渐变时创建的操作的可选名称。默认为"Adamax"
。 -
**kwargs
关键字参数。允许是"clipnorm"
或"clipvalue"
之一。"clipnorm"
(float) 按标准裁剪渐变;"clipvalue"
(float) 按值裁剪渐变。
抛出
-
ValueError
在任何无效论点的情况下。
它是基于无穷范数的亚当的变体。默认参数遵循论文中提供的参数。 Adamax 有时优于 adam,特别是在具有嵌入的模型中。
初始化:
m = 0 # Initialize initial 1st moment vector
v = 0 # Initialize the exponentially weighted infinity norm
t = 0 # Initialize timestep
带梯度g
的参数w
的更新规则在论文第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
项部分变量用于前向传递。这意味着稀疏行为与密集行为形成对比(类似于某些动量实现,除非实际使用变量切片,否则忽略动量)。
参考:
相关用法
- Python tf.keras.optimizers.Adam用法及代码示例
- Python tf.keras.optimizers.Optimizer.set_weights用法及代码示例
- Python tf.keras.optimizers.schedules.serialize用法及代码示例
- Python tf.keras.optimizers.SGD用法及代码示例
- Python tf.keras.optimizers.Optimizer用法及代码示例
- Python tf.keras.optimizers.schedules.ExponentialDecay用法及代码示例
- Python tf.keras.optimizers.schedules.PiecewiseConstantDecay用法及代码示例
- Python tf.keras.optimizers.Nadam用法及代码示例
- Python tf.keras.optimizers.RMSprop用法及代码示例
- Python tf.keras.optimizers.schedules.deserialize用法及代码示例
- Python tf.keras.optimizers.schedules.CosineDecay用法及代码示例
- Python tf.keras.optimizers.schedules.CosineDecayRestarts用法及代码示例
- Python tf.keras.optimizers.Optimizer.apply_gradients用法及代码示例
- Python tf.keras.optimizers.Ftrl用法及代码示例
- Python tf.keras.optimizers.Optimizer.get_weights用法及代码示例
- Python tf.keras.optimizers.schedules.PolynomialDecay用法及代码示例
- Python tf.keras.optimizers.serialize用法及代码示例
- Python tf.keras.optimizers.schedules.InverseTimeDecay用法及代码示例
- Python tf.keras.applications.inception_resnet_v2.preprocess_input用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.optimizers.Adamax。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。