当不再需要时,如何从内存中释放张量



i具有假设图,该图具有一系列的计算:

a_0 = tf.placeholder()
a_1 = some_op_1(a_0)
a_2 = some_op_2(a_1)
a_3 = some_op_3(a_2)

观察计算a_3时;a_0a_1不需要,因此可以在为a_3分配内存之前丢弃它们。是否有一些方法要求TensorFlow执行此内存优化(同意有一些时间的成本)?

请注意,这与仅在需要时分配内存的问题不同。

编辑:将不会训练该网络,因此不必担心Backprop。

TensorFlow使用参考计数来释放张量不再使用的内存。a_0a_1的值一旦不再参考,将立即删除,并且在最新的TensorFlow(1.0后每晚构建)中,某些操作甚至将在输出相同的情况下重复使用输入缓冲区形状和元素类型。

最新更新