擅长:python、mysql、java
<p>我想我找到了解决办法。在我的应用程序中,我实际计算的是<code>f</code>的梯度,而不是{<cd1>}本身,因此下面的方法似乎有效:</p>
<pre class="lang-py prettyprint-override"><code>import tensorflow as tf
x = tf.Variable(1.0)
y = tf.Variable(0.0)
f = x*x
df = tf.gradients(f, x)[0]
op0 = tf.assign_add(x, 1.0)
with tf.control_dependencies([op0]):
#op1 = tf.assign(y, df) < - does not work
df_new = tf.gradients(f, x)[0]
op1 = tf.assign(y, df_new) # < - seems to work
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
sess.run(op1)
print(y.eval())
</code></pre>