【问题标题】:How to prevent RAM from filling up in image Classification (DL)如何防止 RAM 填满图像分类 (DL)
【发布时间】:2021-11-16 04:17:12
【问题描述】:

我是 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))

【问题讨论】:

    标签: python keras deep-learning computer-vision google-colaboratory


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 2023-03-08
      • 2015-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多