类GradientDescentOptimizer
继承自:Optimizer
这是一个实现实现梯度下降算法的优化器类,用于构造一个新的梯度下降优化器实例
构造器方法__init__
__init__(
learning_rate,
use_locking = False,
name = ' GradientDescent '
)
参数:
learning_rate:优化器将采用的学习速率,一个张量或一个浮点值。
use_locked:如果为True,则使用锁进行更新操作。
name:可选的,应用梯度时创建的操作名称前缀,默认为“GradientDescent”。
方法
apply_gradients方法
apply_gradients (
grads_and_vars,
global_step = None
name = None
)
对变量应用梯度。
这是minimize()的第二部分。它返回一个应用梯度的操作。
参数:
grads_and_vars:compute_gradients()返回的(梯度、变量)成对的列表。
global_step:可选变量,在变量更新后增加1。
name:返回操作的可选名称。默认为传递给优化器构造函数的名称。
返回:
一种应用指定梯度的操作。如果global_step不是None,则该操作还会增加global_step。
报错:
TypeError:如果grads_and_vars格式不正确。
ValueError:如果所有变量都没有渐变。
RuntimeError:如果您应该使用_distributed_apply()。
compute_gradients方法
compute_gradients(
loss,
var_list=None,
gate_gradients=GATE_OP,
aggregation_method=None,
colocate_gradients_with_ops=False,
grad_loss=None
)
计算var_list中变量的损失梯度。
这是minimize()的第一部分。它返回一个(梯度,变量)成对的列表,其中“梯度”是“变量”的梯度。注意,“梯度”可以是张量、索引切片,或者如果给定变量没有梯度,则为零。
参数:
loss:一个包含要最小化的值的张量,或者一个不带参数的可调用张量,它返回要最小化的值。当启用即时执行时,它必须是可调用的。
var_list:可选的tf.Variable列表或元组,变量更新以最小化损失。默认值为在关键字GraphKeys.TRAINABLE_VARIABLES下的图表中收集的变量列表。
gate_gradients:如何设定计算梯度的Gate。可取值为GATE_NONE、GATE_OP或GATE_GRAPH。
aggregation_method:指定用于组合梯度项的方法。有效值在类AggregationMethod中定义。
colocate_gradients_with_ops:如果为真,尝试使用相应的op对梯度进行校对。
grad_loss:可选的。一个保持梯度的张量,用于计算损失。
返回:
一组(梯度,变量)对。变量总是存在的,但是梯度可以不存在。
报错:
TypeError:如果var_list包含变量对象以外的任何内容。
ValueError:如果某些参数无效。
RuntimeError:如果调用时启用了紧急执行,并且loss不可调用。