我正在运行一个tensorflow模型,在处理大型图像时,大约10分钟内耗尽了60G的RAM。
我运行Heapy试图阻止泄漏,但是heapy只显示了90米的内存使用量,并且保持不变。
我注意到本文:Python process consuming increasing amounts of system memory, but heapy shows roughly constant usage
这表明问题可能出现在python (此处2.7)中,内存碎片。但这听起来不像是对这个案子的合理解释。
raw队列中。raw队列,进行预处理,并将其加载到ready队列中。ready队列中抽取了8组图像,并通过tensorflow培训运行它们。因此,heapy没有看到至少600米的记忆,我知道这些记忆必须在任何特定的时刻保存。
因此,如果heapy不能看到我知道的内存在那里,我就不能相信它能看到泄漏的位置。以它的速度泄漏,这是一个虚拟的肯定,成批的图像是造成它。
我正在使用python中的threading模块来启动加载程序和预处理线程。我尝试从线程代码和主代码中调用print h.heap(),结果都是一样的。
发布于 2017-04-08 22:36:27
最后,我意外地拥有了一个无限的python Queue。简单的解决办法。奇怪的是,heapy没有显示队列分配的内存。嗯,memory_profiler做了,因此我找到了这个问题。
如果heapy说:“嘿,这个Queue对象使用的内存比你想象的要多。”
https://stackoverflow.com/questions/43299286
复制相似问题