import os, cv2
pp='data/train'
name_list = os.listdir(pp)
name_list.sort()
nl=[]
for i in name_list:
print i
for j in os.listdir(pp+'/'+i):
im = cv2.imread(pp+'/'+i+'/'+j)
nl.append(im)
cv2.imshow('w', im)
cv2.waitKey()
我用上面的代码读10G图片到内存,程序为什么会占用60G内存呢?
这个问题可能有几个原因。首先,如果图像总是大小为 10GB,那么读入内存后它们就会占用 10GB 的内存。其次,在读入这些图像后,程序可能会将它们转换成某种其他的图像格式,比如说 float 或者 RGB 等,这样会导致内存占用更多。此外,程序可能还会创建某些数组和缓存来保存这些图像,这也会导致内存占用增加。
如果想要减少程序占用的内存,可以试着做一些如下的优化: