原创博客,转载请注明出处!
一、TensorFlow的优化器类
在TensorFlow中,编写好前向函数和损失函数后,可以直接调用TensorFlow自带的优化器去优化损失函数。
在TensorFlow中,每个优化方法都是一个类,常见的几种优化方法如下:
GradientDescentOptimizer
AdagradOptimizer
AdagradDAOptimizer
MomentumOptimizer
AdamOptimizer
RMSPropOptimizer
FtrlOptimizer
二、常用optimizer类讲解
1、tf.train.Optimizer
这是上面各种优化器类的父类。所以它的一些方法也是上述优化器类的通用方法。
(1)compute_gradients
计算var_list中变量的损失梯度。它是下面介绍的minimize()方法的第一部分,它返回一个(变量的梯度,变量)对的列表,其中梯度可以是张量、索引切片或无梯度(如果给定的变量无梯度)。
compute_gradients(loss,var_list=None,
gate_gradients=GATE_OP,
aggregation_method=None,
colocate_gradients_with_ops=False,
grad_loss=None)
loss:要最小化值的张量,即损失函数。
var_list:要更新的变量对象的列表或元组,以最小化损失。默认为GraphKeys.TRAINABLE_VARIABLES图表下收集的变量列表。
gate_gradinets:计算梯度的方式,可以是GATE_NONE, GATE_OP, 或GATE_GRAPH
aggregation_method:指定用于组合渐变项的方法。在类AggregationMethod中定义了有效值
colocate_gradients_with_ops:尝试将梯度和相应地op并置
grad_loss:保持为损失计算梯度的张量。