tf.train.AdamOptimizer()函数解析

本文深入解析了tf.train.AdamOptimizer函数,介绍了Adam优化算法的工作原理及其参数设置,包括学习率、一阶和二阶矩估计的指数衰减率等。通过实例代码展示了如何在TensorFlow中使用Adam优化器进行参数更新,以及如何自适应地调整学习率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

tf.train.AdamOptimizer()函数是Adam优化算法:是一个寻找全局最优点的优化算法,引入了二次方梯度校正。

tf.train.AdamOptimizer.__init__(
	learning_rate=0.001, 
	beta1=0.9, 
	beta2=0.999, 
	epsilon=1e-08, 
	use_locking=False, 
	name='Adam'
)

参数:

  • learning_rate:张量或浮点值。学习速率
  • beta1:一个浮点值或一个常量浮点张量。一阶矩估计的指数衰减率
  • beta2:一个浮点值或一个常量浮点张量。二阶矩估计的指数衰减率
  • epsilon:数值稳定性的一个小常数
  • use_locking:如果True,要使用lock进行更新操作
  • name:应用梯度时为了创建操作的可选名称。默认为“Adam”

本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。
在这里插入图片描述

代码理解

实际上运行tf.train.AdamOptimizer(),除了利用反向传播算法对权重和偏置项进行修正外,也在运行中不断修正学习率。根据其损失量学习自适应,损失量大则学习率大,进行修正的角度越大,损失量小,修正的幅度也小,学习率就小,但是不会超过自己所设定的学习率。

lr = 0.1
step_rate = 1000
decay = 0.95

global_step = tf.Variable(0, trainable=False)
increment_global_step = tf.assign(global_step, global_step + 1)
learning_rate = tf.train.exponential_decay(lr, global_step, step_rate, decay, staircase=True)

optimizer = tf.train.AdamOptimizer(learning_rate=learning_rate, epsilon=0.01)
trainer = optimizer.minimize(loss_function)

# Some code here

print('Learning rate: %f' % (sess.run(trainer ._lr)))

参考文章
tensorflow tf.train.AdamOptimizer

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绛洞花主敏明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值