Tensorflow:在tf.gradients()过程中忽略特定的依赖项



给定变量y和z,这两个变量都依赖于张量x。根据乘积规则,如果我做tf梯度(yz,x(,它会给我y'(x(z(x(+z'(x,y(。有没有一种方法可以将y指定为相对于x的常数,从而使tf梯度(yz,x(只给我z’(x(y(x(?

我知道y_=tf.constant(sess.run(y((会将y作为常量,但我不能在代码中使用该解决方案。

您可以使用tf.stop_gradient((来阻止反向传播。在您的示例中阻止渐变:

y = function1(x)
z = function2(x)
blocked_y = tf.stop_gradient(y)
product = blocked_y * z

通过product反向传播后,反向传播将继续到z而不是y

最新更新