Я запустил следующие коды в tenorflow:
a = tf.get_variable('a', initializer=0.0)
b = tf.placeholder(tf.float32, [])
with tf.control_dependencies([tf.assign_add(a, b)]):
c = b + 1
d = c / (a - 1)
with tf.Session() as sess:
for _ in range(50):
sess.run(tf.initialize_all_variables())
print(sess.run(d, feed_dict={b: 3}))
Я ожидаю, что на выходе будет 4 (a = 3
), поскольку значение c
вычисляется после операции присваивания. Однако, когда я запускаю следующие коды 50 раз, я получаю некоторые результаты 4 и некоторые результаты -2 (a = 0).
Кто-нибудь может объяснить, почему это так? Спасибо!