我有假设图,其中有一系列计算如下:
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_0
和a_1
,因此可以在为a_3
分配内存之前将其丢弃。有没有办法让TensorFlow执行这种内存优化(同意有一些时间成本)?
请注意,这与仅在需要时分配内存的this问题不同。
编辑:此网络不会受到培训,因此不要担心反向支持。答案 0 :(得分:1)
TensorFlow使用引用计数一旦不再使用就释放张量使用的内存。一旦没有对它们的更多引用,a_0
和a_1
的值将被删除,并且在TensorFlow的最新版本中(1.0之后的每晚版本),某些操作甚至会重用输入缓冲区对于输出,如果它们具有相同的形状和元素类型。