调用“Session.run”时,TensorFlow 是否为结果分配新内存?

Does TensorFlow allocate new memory for results when `Session.run` is called?

在 tensorflow 中,我可以使用 Session.run 将输入映射到输出。假设我这样做:

b = sess.run(B, {A:a})

每次调用时是否重新分配与 b 关联的张量?我可以只存储一个指向 b 的指针并期望它在我每次 运行 sess.run(B, {A:a}) 时更新吗?

每次调用 sess.run() 时都会分配结果张量作为 NumPy 数组。当前 API 无法在 Python 和 TensorFlow 后端之间共享存储,但如果您想分配一次存储并更新它,您可以使用 tf.Variable

A = ...

B = tf.Variable()
assign_op = B.assign(some_function(A))
# ...
sess.run(assign_op.op, {A: a})

然后,当你想检查B时,你可以调用:

b = sess.run(B)

...获取其当前值。