如何防止图像分类(DL)中的RAM被填满

How to prevent RAM from filling up in image Classification (DL)

我是 ML 新手,遇到了问题。 我有 10000 张图片 (300,300) 像素。我想把它们放入 DL 模型中进行分类。但我的问题是当我规范化图像(将每个图像从 uint8 转换为浮点数并除以 255)时,我的 Ram 崩溃了!我的意思是,我的 Google Colab RAM 已满。

谢谢。

这是我的代码:

data_train = np.asarray(data_train)
data_train = data_train.astype('float16') #data_train.shape: (10000, 300, 300, 3)
data_valid = np.asarray(data_valid)
data_valid = data_valid.astype('float16')

data_train/=255.0  #This part fills my memory !! 
data_valid/=255.0  #This part fills my memory !!

model = #confing the model ...
model.compile(loss=... ,optimizer=...,metrics=...)
datagen = ImageDataGenerator(...)
datagen.fit(data_train)
history = model.fit(datagen.flow(data_train,labels_train,batch_size=...),
                    steps_per_epoch=...,
                    epochs=...,
                    validation_data=(data_valid,labels_valid))

一般来说,我们不会一次加载所有数据(在您的情况下是 10,000 张图像)。您需要一次加载到内存中的最小图像数量是您的批量大小。
对于你的第二个问题 - 是的,这是处理大型数据集的公认方式。首先,您只需加载 batch_size 数量的图像进行归一化并提供给分类器。查看 this 是否有助于您的实施。