Python 在数组中导入数据集时google colab内存不足
我想在一个数组中存储大约2400张大小为2000**2000*3的图像,以提供卷积神经网络。但是,由于内存不足,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.
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的代码的空间复杂度吗?尝试使用生成器。