Я новичок в тензорном потоке и пытаюсь понять его поведение; Я пытаюсь определить все операции вне области сеанса, чтобы оптимизировать время вычислений.
В следующем коде:
import tensorflow as tf
import numpy as np
Z_tensor = tf.Variable(np.float32( np.zeros((1, 10)) ), name="Z_tensor")
Z_np = np.zeros((1,10))
update_Z = tf.assign(Z_tensor, Z_np)
Z_np[0][2:4] = 4
with tf.Session() as sess:
sess.run(Z_tensor.initializer)
print(Z_tensor.eval())
print(update_Z.eval(session=sess))
Я получаю как результат:
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
Вместо этого я ожидал в качестве вывода:
[[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
[[0. 0. 4. 4. 0. 0. 0. 0. 0. 0.]]
Кажется, что массив Z_np
не обновляется в операции присваивания, и я не понимаю, почему.
Не операция
update_Z = tf.assign(Z_tensor, Z_np)
сделать ссылку с Z_np
?