Tensorflow 1 stop_gradient影响渐变比例

时间:2020-01-09 18:48:14

标签: tensorflow

tf.stop_gradients似乎可以影响渐变的比例,我不知道如何停止。

import tensorflow as tf
ph = tf.placeholder(shape=(1,50), dtype=tf.float32)
var = tf.Variable(1, dtype=tf.float32)

v1 = ph * var
v1 = tf.stop_gradient(v1)
v2 = v1 + var

scaled_gradient = tf.gradients([v2], [var])
normal_gradient = tf.gradients([var], [var])

sess = tf.Session()
print(sess.run(scaled_gradient)) # Prints 50
print(sess.run(normal_gradient)) # Prints 1

我们可以看到,我停止了v1的梯度流,因此v2的梯度应为1。 因为我们只将变量添加到其中,而不将其相乘。 但是使用此设置后,渐变的比例将等于占位符中标量的数量。

0 个答案:

没有答案
相关问题