gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:07 25 4
gpt4 key购买 nike

我正在将许多图像加载到内存中,因为我需要经常迭代它们以在训练神经网络时执行随机数据扩充。我的机器有64GB内存,还有60多GB可用。该机器运行 64 位 Linux 和 Python 3.7.4。

我的脚本一直运行到进程超过 16GB。然后我看到这个错误信息:

cv2.error: OpenCV(3.4.2)/tmp/build/80754af9/opencv-suite_1535558553474/work/modules/core/src/alloc.cpp:55: error: (-4:Insufficient memory) Failed to allocate 18874368 bytes [this are 18MB] in function 'OutOfMemoryError'

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

我还用 numpy 尝试了以下操作:

a = np.zeros((16*1024*1024*1024,), dtype=np.uint8)+1

(工作并分配 16GB)

a = np.zeros((17*1024*1024*1024,), dtype=np.uint8)+1

(崩溃)

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

有趣的是,我能够使用 pytorch 分配 >16GB:

a = torch.ones((28*1024*1024*1024,), dtype=torch.uint8)

(有效,但当我尝试超过 28GB 时失败)

忘记提及我在 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)

最佳答案

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

关于python - 64GB 可用,超过 16GB 时 cv2/python 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58278558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com