请参阅代码段:
import tensorflow as tf
x = tf.Variable(1)
op = tf.assign(x, x + 1)
with tf.Session() as sess:
tf.global_variables_initializer().run()
print(sess.run([x, op]))
Run Code Online (Sandbox Code Playgroud)
有两种可能的结果:
它们取决于评估的顺序,对于第一种情况,x在之前进行评估op,对于第二种情况,x在之后进行评估op.
我已多次运行代码,但结果总是如此x=2 and op=2.所以我想这tensorflow可以保证x在之后进行评估op.这样对吗?如何tensorflow保证依赖?
对于上面的情况,结果是确定的.但在以下情况中,结果并不确定.
import tensorflow as tf
x = tf.Variable(1)
op = tf.assign(x, x + 1)
x = x + 0 # add this line
with tf.Session() as sess:
tf.global_variables_initializer().run()
for i in range(5):
print(sess.run([x, op]))
Run Code Online (Sandbox Code Playgroud)
在第一个代码中,x是Variable和op依赖于x,因此x总是在之后进行评估op.但在第二种情况下,x变为Tensor,op依赖于Variable x(之后x = x + 0,x被覆盖).所以op不依赖于Tensor x.
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |