当调用`Session.run`时,TensorFlow是否为结果分配新的内存?

时间:2016-04-15 17:21:27

标签: tensorflow

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

  

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

每次拨打此电话时,与b关联的张量是否重新分配?我可以只存储指向b的指针,并期望每次运行sess.run(B, {A:a})时都会更新吗?

1 个答案:

答案 0 :(得分:4)

每次调用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)

...获得当前值。