tf.assign_add的执行会影响后续的操作,需要使用控制依赖
m = tf.Variable(initial_value=0,dtype=tf.float32)
op = tf.assign_add(m,1)
n = m+1
with tf.Session() as sess:
tf.global_variables_initializer().run()
for i in range(100):
print(sess.run([m,n,op]))
因为run执行[m,n,op]和这些变量在图中出现的顺序有关,但是,n=m+1的m是自增之后的m还是,还是之前的m不知道,会出现多次执行结果不一致
m = tf.Variable(initial_value=0,dtype=tf.float32)
op = tf.assign_add(m,1)
with tf.control_dependencies([op]):
n = m+1
with tf.Session() as sess:
tf.global_variables_initializer().run()
for i in range(100):
print(sess.run([m,n,op]))