如何防止图像分类(DL)中的RAM被填满
How to prevent RAM from filling up in image Classification (DL)
我是 ML 新手,遇到了问题。
我有 10000 张图片 (300,300) 像素。我想把它们放入 DL 模型中进行分类。但我的问题是当我规范化图像(将每个图像从 uint8 转换为浮点数并除以 255)时,我的 Ram 崩溃了!我的意思是,我的 Google Colab RAM 已满。
- 这个问题有解决方案或技术吗?
- 有没有办法(例如)我可以将我的数据分成 3 部分(每部分 3300 张图像)然后归一化并将这部分交给模型单独训练? (在第 1 部分之后,清空 RAM 和第 2 部分 Normalize+trainin)
谢谢。
这是我的代码:
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 是否有助于您的实施。
我是 ML 新手,遇到了问题。 我有 10000 张图片 (300,300) 像素。我想把它们放入 DL 模型中进行分类。但我的问题是当我规范化图像(将每个图像从 uint8 转换为浮点数并除以 255)时,我的 Ram 崩溃了!我的意思是,我的 Google Colab RAM 已满。
- 这个问题有解决方案或技术吗?
- 有没有办法(例如)我可以将我的数据分成 3 部分(每部分 3300 张图像)然后归一化并将这部分交给模型单独训练? (在第 1 部分之后,清空 RAM 和第 2 部分 Normalize+trainin)
谢谢。
这是我的代码:
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 是否有助于您的实施。