假设以下简化代码:
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?
答案 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]