上传图像数据集后,Google colab 内存已满

Posted

技术标签:

【中文标题】上传图像数据集后,Google colab 内存已满【英文标题】:Google colab memory becomes full after image dataset is uploaded 【发布时间】:2021-12-30 23:27:27 【问题描述】:

我正在处理一个包含 11 个类的图像数据集的分类问题。它总共包含 11,000 张图像,每个类有 1000 张图像,按文件夹存储(11 个文件夹)。数据集大小约为 40MB。在我将数据从谷歌驱动器上传到collab(这实际上需要一些时间)并在将其提供给模型之前对其进行预处理后,collab 的内存立即变为 95%。当我开始训练时,collab 崩溃,并且运行时被重置。 当我使用 Keras data-flow-from-directory 函数时,不会发生这种情况。我无法找到解决方案。 Screenshot

【问题讨论】:

分批进行,而不是一次性完成 【参考方案1】:

发生这种情况是因为通过使用训练数据集和验证数据集调用 fit,您会强制 colab 同时将所有图像加载到内存中,您需要编写一个生成器,这是一个简单的解决方案,其中大部分代码已经编写是使用 tfrecords,其余的将由 keras 处理。

https://www.tensorflow.org/tutorials/load_data/tfrecord

您需要将图像存储在磁盘上并在训练期间获取它们,而不是一开始就全部获取。

【讨论】:

你不必使用 tfrecords,你可以使用任何你喜欢的生成器,但是这些东西是马上就来的 好吧,我在这里使用 Keras Tuner,所以我不确定生成器是否可以与 Tuner-search 一起使用

以上是关于上传图像数据集后,Google colab 内存已满的主要内容,如果未能解决你的问题,请参考以下文章

将多标签图像从云端硬盘上传到 Google Colab

从 Google Drive 读取图像时,Google Colab 太慢了

深入学习Google Colab:加载大型图像数据集的时间很长,如何加速这个过程?

如何从 google colab 的压缩文件夹中读取/导入训练和测试图像以进行多分类? gdrive 已安装到 gcolab

无法在 Google Colab 上上传巨大的文件/数据集

如何在google colab中有效地使用内存?