tf.assign如何计算张量流中的梯度?

时间:2017-10-27 22:36:16

标签: tensorflow

假设以下简化代码:

x = tf.Variable(...)
y = tf.Variable(...)  # y can also be some tensor computed from other variables
x_new = tf.assign(x, y)
loss = x_new * x_new

如果我优化损失,损失梯度是否会反向传播到x或y?

1 个答案:

答案 0 :(得分:0)

一般情况下,您可以在此discussion中找到分配操作的非常好的解释。

对于您的具体问题,损失梯度不会反向传播到x或y:

# Your example.
tf.gradients(x_new * x_new, [x, y]) #output: [None, None]

# Some other related examples.
tf.gradients(x_new * y, [x, y]) #output: [None, x_new_value]
tf.gradients(x * x_new, [x, y]) #output: [x_new_value, None]