我对tensorflow如何处理内存有一些困难。在这个玩具示例每次迭代之后,我想从我的记忆中删除张量。
我正在使用tensorflow EagerExecution。我试过用变量和简单的张量。tf.assign不做这项工作。越来越多的内存被使用。为了能计算梯度,我想这是正常的。即使在每次迭代结束时应用一些虚拟优化器,内存也不会释放(更准确地说,有时会发生这种情况,但总体趋势是内存使用量正在增加)。
那么,是否可以手动删除呢?
import tensorflow as tf
import tensorflow.contrib.eager as tfe
import numpy as np
import time as ti
tf.enable_eager_execution()
for i in range(150):
all_subject=tfe.Variable(np.random.rand(200, 500), dtype=tf.float32)
tf.assign(all_subject, np.random.rand(200,500) )
ti.sleep(1.0)
del all_subject
ti.sleep(0.5)分配情况如下:
https://stackoverflow.com/questions/50624724
复制相似问题