实现 Adam 算法的优化器。
继承自:Optimizer
用法
tf.compat.v1.train.AdamOptimizer(
learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False,
name='Adam'
)
参数
-
learning_rate
张量或浮点值。学习率。 -
beta1
浮点值或常量浮点张量。一阶矩估计的 index 衰减率。 -
beta2
浮点值或常量浮点张量。二阶矩估计的 index 衰减率。 -
epsilon
用于数值稳定性的小常数。这个 epsilon 是 Kingma 和 Ba 论文中的 "epsilon hat"(在 2.1 节之前的公式中),而不是论文算法 1 中的 epsilon。 -
use_locking
如果 True 使用锁进行更新操作。 -
name
应用渐变时创建的操作的可选名称。默认为"Adam"。
迁移到 TF2
警告:这个 API 是为 TensorFlow v1 设计的。继续阅读有关如何从该 API 迁移到本机 TensorFlow v2 等效项的详细信息。见TensorFlow v1 到 TensorFlow v2 迁移指南有关如何迁移其余代码的说明。
tf.compat.v1.train.AdamOptimizer 与 Eager 模式和 tf.function
兼容。启用即刻执行后,learning_rate
, beta1
, beta2
和 epsilon
都可以是不带参数并返回要使用的实际值的可调用对象。这对于在优化器函数的不同调用中更改这些值很有用。
要切换到原生 TF2 样式,请改用 tf.keras.optimizers.Adam
。请注意,由于实现的差异,tf.keras.optimizers.Adam
和tf.compat.v1.train.AdamOptimizer
在浮点数值上可能会略有不同,即使用于变量更新的公式仍然匹配。
到原生 TF2 的结构映射
前:
optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=0.001)
后:
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
如何映射参数
TF1 参数名称 | TF2 参数名称 | 注意 |
---|---|---|
learning_rate | learning_rate | 小心将 learning_rate 设置为从全局步骤计算的张量值。在 TF1 中,这通常意味着动态学习率,并且会在每一步中重新计算。在 TF2 (eager + function) 中,它会将其视为仅计算一次的标量值,而不是每次都计算的符号占位符。 |
beta1 | beta_1 | |
beta2 | beta_2 | |
epsilon | epsilon | TF1 中默认值为 1e-08,TF2 中默认值为 1e-07。 |
use_locking | 不适用 | 不适用于 TF2。 |
使用示例之前和之后
前:
x = tf.Variable([1,2,3], dtype=tf.float32)
grad = tf.constant([0.1, 0.2, 0.3])
optimizer = tf.compat.v1.train.AdamOptimizer(learning_rate=0.001)
optimizer.apply_gradients(zip([grad], [x]))
后:
x = tf.Variable([1,2,3], dtype=tf.float32)
grad = tf.constant([0.1, 0.2, 0.3])
optimizer = tf.keras.optimizers.Adam(learning_rate=0.001)
optimizer.apply_gradients(zip([grad], [x]))
参考:
Adam - 一种随机优化方法:Kingma 等人,2015 (pdf)
相关用法
- Python tf.compat.v1.train.AdamOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.train.AdagradOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.train.AdagradDAOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.train.AdagradOptimizer用法及代码示例
- Python tf.compat.v1.train.AdadeltaOptimizer用法及代码示例
- Python tf.compat.v1.train.AdadeltaOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.train.FtrlOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.train.get_or_create_global_step用法及代码示例
- Python tf.compat.v1.train.cosine_decay_restarts用法及代码示例
- Python tf.compat.v1.train.Optimizer用法及代码示例
- Python tf.compat.v1.train.init_from_checkpoint用法及代码示例
- Python tf.compat.v1.train.Checkpoint用法及代码示例
- Python tf.compat.v1.train.Supervisor.managed_session用法及代码示例
- Python tf.compat.v1.train.Checkpoint.restore用法及代码示例
- Python tf.compat.v1.train.global_step用法及代码示例
- Python tf.compat.v1.train.MonitoredSession.run_step_fn用法及代码示例
- Python tf.compat.v1.train.RMSPropOptimizer.compute_gradients用法及代码示例
- Python tf.compat.v1.train.exponential_decay用法及代码示例
- Python tf.compat.v1.train.natural_exp_decay用法及代码示例
- Python tf.compat.v1.train.MomentumOptimizer用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.compat.v1.train.AdamOptimizer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。