每次加载npy文件时,内存使用都会增加。以下迷你示例说明了此问题。
import numpy as np
X = np.random.randn(10000,10000)
np.save('tmp.npy',X)
现在,如果执行以下行多次,则每次内存使用量都会增加
y=np.load('tmp.npy')
我发现与npz文件here完全相似的问题,但是解决方案是使用适用于npy文件的函数。 有想法吗?
答案 0 :(得分:2)
前提是有缺陷的:加载文件时内存使用量确实会暂时增加,并且可能第二次甚至第三次再次增加,但是最终垃圾收集器将运行并且内存将被释放。
如果您不想等待不确定的时间来回收内存,则可以在需要回收内存时显式强制垃圾回收器运行:
import gc
gc.collect()
如果不再需要数据,还可以在加载数组后显式删除它:
del y
但是,如果您既不做任何事情,又一次又一次地重复加载相同的数据,则内存使用量不会永远增加-在某个时候,垃圾收集器将运行,内存使用量将减少。这是自动发生的,您通常不必担心。