使用PIL(python)将图像数据集加载到内存中会消耗太多内存

时间:2019-07-04 10:37:57

标签: python python-imaging-library google-colaboratory

我正在使用Google Colab(13 Gb RAM),并且试图将8000张JPG图像(512x512)加载到内存中,平均每张图像150KB。

我希望所有这些都会消耗不超过1.5GB的RAM,但实际上会消耗掉全部内存,并且Google Colab崩溃。

我想念什么?

images = []
files = os.listdir(IMAGES_PATH)
for f in files:
  temp_image = Image.open(IMAGES_PATH + f)                
  temp = np.array(temp_image.convert('RGB'), dtype='float32') / 255
  images.append(temp)

1 个答案:

答案 0 :(得分:1)

您正在使用:

512*512*8000,这是您计算后得到的矩阵,浮点数使用8kbytes,这意味着您的内存使用量为: 512*512*8000*8 = 11,11GB

图片的原始大小对于此计算并不重要,python会将其存储在内存中。