Tensorflow:在 tf.gradients() 期间忽略特定依赖项

Tensorflow: ignore a specific dependency during tf.gradients()

给定变量 y 和 z,这两个变量都依赖于张量 x。根据产品规则,如果我做 tf.gradients(yz,x),它会给我 y'(x)z(x) + z'(x)y(x)。有没有一种方法可以将 y 指定为相对于 x 的常数,这样 tf.gradients(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