Python 在数组中导入数据集时google colab内存不足

Python 在数组中导入数据集时google colab内存不足,python,conv-neural-network,google-colaboratory,Python,Conv Neural Network,Google Colaboratory,我想在一个数组中存储大约2400张大小为2000**2000*3的图像,以提供卷积神经网络。但是,由于内存不足,Google Colab会话不断崩溃 导入图像数据集的我的代码: Train_data = [] for img in sorted(glob.glob("path/*.jpg")): image= mpimg.imread(img) image=np.array(image , dtype='float32') image /= 255.

我想在一个数组中存储大约2400张大小为2000**2000*3的图像,以提供卷积神经网络。但是,由于内存不足,Google Colab会话不断崩溃

导入图像数据集的我的代码:

Train_data = []
for img in sorted(glob.glob("path/*.jpg")):
    image= mpimg.imread(img)
    image=np.array(image , dtype='float32') 
    image /= 255.
    Train_data.append(image) 
Train_data = np.array(Train_data)

有两种可能的方法可以避免RAM错误:

第一个选项:将图像大小调整为较小的大小

导入cv2
列车_数据=[]
对于已排序的img(glob.glob(“path/*.jpg”):
image=mpimg.imread(img)
image=np.array(image,dtype='float32')
图像=cv2。调整大小(图像,(150150))
图像/=255。
列车附加数据(图像)
列车数据=np.数组(列车数据)
第二种选择:您可以使用生成器,它比迭代器消耗更少的内存,因为它不存储整个列表

Train_data=[]
def gen_图像():
对于已排序的img(glob.glob(“path/*.jpg”):
image=mpimg.imread(img)
image=np.array(image,dtype='float32')
图像/=255。
产量图像
对于gen_images()中的图像:
列车附加数据(图像)

非常感谢您的精彩回答。我试试发电机,没问题。但是,当我尝试以下代码时,我不会面临崩溃:

Train_data =np.empty(shape=(num,m,n,c), dtype=np.float32)
i=0
for img in sorted(glob.glob("path/*.jpg")):
 image= mpimg.imread(img)
 image=np.array(image , dtype='float32') 
 image /= 255.
 Train_data[i,:,:,:] = image  
 i+=1

有人能比较一下这段代码和我第一段使用append的代码的空间复杂度吗?

尝试使用生成器。