加载大型图像集会导致进程停止

问题描述 投票:0回答:1

加载1500张大小的图片 (1000,1000,3) 破译代码,通过 kill 9 而不会再出现任何错误。在这行代码之前使用的内存是 16% 占系统总内存的比例。图像的总大小为 7.1G.

X = np.asarray(images).astype('float64')
y = np.asarray(labels).astype('float64')

系统规格是:

  • 操作系统:MacOS Catalina
  • 处理器:2.2 GHz 6核英特尔酷睿i7 16 GB 2。
  • 内存:16 GB 2400 MHz DDR4

更新:在32个vCPU,120GB内存上运行代码时,出现了下面的错误。

MemoryError: Unable to allocate 14.1 GiB for an array with shape (1200, 1024, 1024, 3) and data type float32

numpy image-processing keras computer-vision numpy-ndarray
1个回答
0
投票

你必须提供更多的信息细节才能得到准确的答案,但是,假设这是一个内存错误(难以置信的可能性,磁盘上的图像大小并不代表它们在内存中占据的大小,所以这是不相关的。在100%的情况下,由于指针、需要的对象等原因,内存中的图像会占据更多的空间。直觉上我会说,16GB的内存远远不够加载7GB的图片。不可能告诉你需要多少,但根据经验,我认为你需要将其提升到64GB。如果你使用的是Keras,我建议你研究一下Keras。DirectoryIterator.

编辑:Cris Luengo指出,我忽略了一个事实,就是你说的图片大小。

正如Cris Luengo所指出的,我没注意到你说的图像大小。

© www.soinside.com 2019 - 2024. All rights reserved.