简介

目前TensorFlow支持11种不同的经典优化器(参考TensorFlow API tf.train文档
<https://www.tensorflow.org/api_guides/python/train#Optimizers>)

* tf.train.Optimizer
* tf.train.GradientDescentOptimizer
* tf.train.AdadeltaOptimizer
* tf.train.AdagtadOptimizer
* tf.train.AdagradDAOptimizer
* tf.train.MomentumOptimizer
* tf.train.AdamOptimizer
* tf.train.FtrlOptimizer
* tf.train.ProximalGradientDescentOptimizer
* tf.train.ProximalAdagradOptimizer
* tf.train.RMSProOptimizer



介绍三种常用优化器

下面重点介绍 tf.train.GradientDescentOptimizer、tf.train.MomentumOptimizer、
tf.train.AdamOptimizer







  1. tf.train.GradientDescentOptimizer

        这个优化器主要实现的是 梯度下降算法
__init__( learning_rate, use_locking=False, name='GradientDescent' )
* learning_rate: (学习率)张量或者浮点数
* use_locking: 为True时锁定更新
* name: 梯度下降名称,默认为"GradientDescent".
     

   2. tf.train.MomentumOptimizer



        实现 动量梯度下降算法 ,可参考 简述动量Momentum梯度下降
<https://blog.csdn.net/yinruiyang94/article/details/77944338>


Δxt=ρΔxt−1−ηgt其中,ρ
 即momentum,表示要在多大程度上保留原来的更新方向,这个值在0-1之间,在训练开始时,由于梯度可能会很大,所以初始值一般选为0.5;当梯度不那么大时,改为0.9。
η 是学习率,即当前batch的梯度多大程度上影响最终更新方向,跟普通的SGD含义相同。
ρ与 

η 之和不一定为1。
__init__( learning_rate, momentum, use_locking=False, name='Momentum',
use_nesterov=False )
* learning_rate: (学习率)张量或者浮点数
* momentum: (动量)张量或者浮点数
* use_locking: 为True时锁定更新
* name:  梯度下降名称,默认为 "Momentum".
* use_nesterov:  为True时,使用 Nesterov Momentum. 
<https://zhuanlan.zhihu.com/p/22810533>

   3.  tf.train.AdamOptimizer

        实现 Adam优化算法(  Adam 这个名字来源于 adaptive moment estimation,自适应矩估计。)


可参考博客梯度优化算法Adam <https://blog.csdn.net/zb1165048017/article/details/78392623>
__init__( learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-08,
use_locking=False, name='Adam' )
* learning_rate: (学习率)张量或者浮点数
* beta1:  浮点数或者常量张量 ,表示 The exponential decay rate for the 1st moment
estimates.
* beta2:  浮点数或者常量张量 ,表示 The exponential decay rate for the 2nd moment
estimates.
* epsilon: A small constant for numerical stability. This epsilon is "epsilon
hat" in the Kingma and Ba paper (in the formula just before Section 2.1), not
the epsilon in Algorithm 1 of the paper.
* use_locking: 为True时锁定更新
* name:  梯度下降名称,默认为 "Adam".

              



友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信