首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python显示了持续的内存使用量,尽管在10分钟内耗尽了60 in的ram。

Python显示了持续的内存使用量,尽管在10分钟内耗尽了60 in的ram。
EN

Stack Overflow用户
提问于 2017-04-08 19:11:03
回答 1查看 479关注 0票数 2

我正在运行一个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培训运行它们。
  • 对于批处理的8幅图像(每个~25 24的numpy矩阵),在当前处理和两个队列之间的任何给定时间内,我应该至少保留24*25 24的内存。但是heapy只显示了9000万的消费。

因此,heapy没有看到至少600米的记忆,我知道这些记忆必须在任何特定的时刻保存。

因此,如果heapy不能看到我知道的内存在那里,我就不能相信它能看到泄漏的位置。以它的速度泄漏,这是一个虚拟的肯定,成批的图像是造成它。

我正在使用python中的threading模块来启动加载程序和预处理线程。我尝试从线程代码和主代码中调用print h.heap(),结果都是一样的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-08 22:36:27

最后,我意外地拥有了一个无限的python Queue。简单的解决办法。奇怪的是,heapy没有显示队列分配的内存。嗯,memory_profiler做了,因此我找到了这个问题。

如果heapy说:“嘿,这个Queue对象使用的内存比你想象的要多。”

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43299286

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档