调用“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)
...获取其当前值。
在 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)
...获取其当前值。