首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >64 cv2可用,超过16 cv2时cv2/python崩溃

64 cv2可用,超过16 cv2时cv2/python崩溃
EN

Stack Overflow用户
提问于 2019-10-08 00:04:08
回答 1查看 155关注 0票数 1

我正在将许多图像加载到内存中,因为在训练神经网络时,我需要经常迭代它们来执行随机数据增强。我的机器有64 of的内存和超过60 of的可用。该机器运行64位Linux和Python3.7.4。

我的脚本一直运行到进程超过16 My为止。然后我看到了这个错误消息:

错误: OpenCV(3.4.2)/tmp/build/80754af9/opencv-suite_1535558553474/work/modules/core/src/alloc.cpp:55:错误:(-4:内存不足)未能分配18874368字节--这是函数'OutOfMemoryError‘中的18 in

cv2和/或python是否存在内部内存限制?

我还用numpy尝试了以下几种方法:

代码语言:javascript
复制
a = np.zeros((16*1024*1024*1024,), dtype=np.uint8)+1

(作品及分配16 and )

代码语言:javascript
复制
a = np.zeros((17*1024*1024*1024,), dtype=np.uint8)+1

(撞车)

因此,我认为这是一个python或numpy问题,因为cv2在内部使用numpy。

有趣的是,我能够使用py手电筒分配>16 to:

代码语言:javascript
复制
a = torch.ones((28*1024*1024*1024,), dtype=torch.uint8)

(工作,但当我尝试超过28 try时失败)

忘记提到我正在运行SLURM实例中的所有内容。但我不知道如何找出这是否是问题所在,因为我没有其他的机器有这么大的内存。

编辑:在加载每个图像之前,我使用psutil打印内存信息。这是在它崩溃之前:

svmem(total=134773501952,available=116365168640,percent=13.7,used=17686675456,free=112370987008,active=18417344512,inactive=2524413952,buffers=176410624,cached=4539428864,shared=87986176,slab=371335168)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-22 12:50:52

这个问题与Python和/或OpenCV无关。我的ulimit -v设置太低了。运行ulimit -v unlimited解决了这个问题。

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

https://stackoverflow.com/questions/58278558

复制
相关文章

相似问题

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