【发布时间】:2017-06-04 23:43:21
【问题描述】:
如果将分配操作应用于权重张量在权重张量用于网络前向传递的部分之后,TensorFlow 的反向传播在确定梯度时是否考虑分配操作那个重量?例如,如果我有
weights = tf.Variable(...)
bias = tf.Variable(...)
output = tf.tanh(tf.matmul(weights, input) + bias)
weight_assign_op = weights.assign(weights + 1.0)
with tf.control_dependencies(weight_assign_op):
output2 = tf.identity(output)
计算输出,然后更改权重。如果输出随后用于计算损失和梯度以更新变量,是否会在考虑到weights 的更改的情况下创建梯度?也就是说,weights 的梯度是否是 old_weights + 1.0 的正确梯度,或者它们仍然是 old_weights 的梯度,当应用于新的 weights 时,不一定是梯度下降的“正确”梯度?
【问题讨论】:
标签: python tensorflow