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

标签 tensorflow

我有一个假设的图,它有一系列计算,如下:

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 执行这种内存优化(同意有一些时间成本)?

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

编辑:该网络不会被训练,所以不用担心反向传播。

最佳答案

TensorFlow 使用引用计数来释放张量不再使用的内存。一旦不再引用 a_0a_1 的值,它们就会被删除,并且在 TensorFlow 的最新版本(1.0 之后的每夜版本)中,一些操作如果它们具有相同的形状和元素类型,甚至会重用输入缓冲区作为输出。

关于tensorflow - 当不再需要时如何从内存中释放张量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42631417/

相关文章:

python - 无法将函数转换为张量或运算。 tensorflow 错误

python - 使用 tensorflow 进行多标签分类验证

python - 无法在 Ubuntu 12.04 LTS 上正确安装或加载 Tensorflow,并导致 ImportError

python - 在 Keras 中返回分类预测的概率?

tensorflow - Keras CNN 模型中的训练和损失没有改变

python - Tensorflow:仅在需要时将图像加载到内存中

python - 如何在keras模型中设置一个常数作为权重?

python - 将变量添加到 Keras/TensorFlow CNN 密集层

tensorflow - tf.compat 的目的是什么?

python - Tensorflow 图像分类 Python 总是说相同的答案