TensorFlow 提供的优化器

每一个 TensorFlow 提供的优化器都作为 一 个类而被放在了 .py 文件中, 在路径 tensorflow/python/training 下可以找到这些 . py 文件 。这些优化器类分别介绍如下。
1. train.Optimizer()
这是一个基本的优化器类,该类不常常被直接调用,而较多使用其子类,比如 AdagradOptimizer 、 GradientDescentOptimizer 等。
类本身及其__init__()函数的定义为:

class Optimizer(object):
def__init__( self, use_locking, name)

对于 一个具体的优化器类( Optimizer 类的子类〉,我们 一般会调用定义在基本优化器类中的minimize()函数来指定最小化的目标 。 Optimizer类的minimize ()函数原型为:

minimize(self,loss, global_step=None,var_list=None,gate_gradients=GATE_OP, aggregation_method=None ,
colocate gradients with ops=False , name=None , grad loss=None)

其中, loss 参数就是我们需要最小化的目标,一般对其传入一个损失函数 。 对于其他参数, minimize ()函数都为其赋予了默认值,但我们仍能给参数传入一个需要的值。
2. train.GradientDescentOptimizer()
梯度下降优化器。这是 Optimizer 类的一个子类。 TensorFlow 提供的这个优化器实现了梯度下降算法。梯度下降算法是用得最普遍的优化算法,不过梯度下降算法需要用到全部的样本,训练速度比较慢。
3. train.AdagradOptimizer()
Adagrad 自适应学习率优化器。这是Optimizer 类的一个子类 。Tensor Flow提供的这个优化器实现了Adagrad 优化算法。
4. train.RMSPropOptimizer()
RMSProp 自适应学习率优化器。这是 Optimizer 类的一个子类。Tensor Flow 提供的这个优化器实现了 RMSProp 优化算法。类本身及其__init_() 函数的定义为:

class RMSPropOptimizer(optimizer.Optimizer):
def __init__( self,learning_ rate,decay=0.9,momentum=0.0,epsilon=le-10,use_locking=False,
centered=False,name ="RMS Prop")

leaming_rate 是要使用的学习率,其值可以是一个张量或浮点数;
decay 为衰减率,默认值为 0.9;
momentum在RMSProp 算法中使用的动量值, RMSProp算法也可以加入动量的一些内容,这在之前介绍算法时没有涉及到,如果不使用动量,一般取值为0;
epsilon是RMSProp算法中的小常数 δ ,在定义时给出了默认值 le-10;
use_ locking 默认值为 False ,一般不设置;
name 用于指定创建的操作的名称,这是可忽略的,默认值为吸MSProp ”。
5. train.AdamOptimizer()
Adam自适应学习率优化器。这是 Optimizer 类的一个子类。Tensor Flow 提供的这个优化器实现了 Adam 优化算法。类本身及其_init_()函数的定义为:

class AdamOptirnizer(optirnizer.Optirnizer):
def __init__( self, learning rate=0.001, beta1=0.9,beta2=0.999, epsilon=le-8, use locking=False, name ="Adam")

在__init_()函数的参数中, learning_rate 是要使用的学习率,其值可以是一个张量或浮点数;
bate1是第一个指数衰减率的预估值,对应到算法中的间,其值可以为浮点常量或浮点型常数张量;
bate2 是第二个指数衰减率的预估值,对应到算法中的 ρ2 ’其值可以为浮点常量或浮点型常数张量;
epsilon 是用于数值稳定的小常数 δ ;
use_locking 默认值为 False ,一般不设置;
name 用于指定创建的操作的名称,这是可忽略的,默认值为"Adam".
6.train.AdagradDAOptimize()
这个优化器可以看作是 Adagrad优化器的升级版本,其构造函数在AdagradOptimizer类构造函数的基础上又多了几项正则化的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值