我在使用Tensorflow处理内存方面遇到了一些问题。我想在每次迭代这个玩具示例后从我的内存中删除张量。
我正在使用Tensorflow的EagerExecution。我已经尝试使用变量和简单张量。tf.assign不能完成这项工作。越来越多的内存被使用。我猜这是为了能够计算梯度而正常发生的现象。即使我在每次迭代结束时应用一些虚拟优化器,内存也不会被释放(更准确地说,有时会释放,但全局趋势是内存使用量不断增长)。
所以,是否可能手动删除它?
我正在使用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)
分配情况如下: