【问题标题】:how to work with large training set when dealing with auto-encoders on google colaboratory?在 google colaboratory 上处理自动编码器时如何处理大型训练集?
【发布时间】:2021-03-22 23:23:16
【问题描述】:
我正在 google colab 上训练自动编码器 (keras)。但是,我有 25000 个输入图像和 25000 个输出图像。我试过了:
1- 每次将大文件从谷歌驱动器复制到 colab(需要 5-6 小时)。
2-将集合转换为 numpy 数组,但是在对图像进行规范化时,大小会变得更大(例如从 7GB 到 24GB),然后我无法将其放入 ram 内存中。
3- 我无法压缩和解压缩我的数据。
所以,如果有人知道如何在没有大文件(24GB)的情况下将其转换为 numpy 数组(并对其进行规范化)。
【问题讨论】:
标签:
numpy
keras
deep-learning
google-colaboratory
training-data
【解决方案1】:
我通常做什么:
- 压缩所有图像并将
.zip 文件加载到您的 Google 云端硬盘中
- 在您的 colab 中解压缩:
from zipfile import ZipFile
with ZipFile('data.zip', 'r') as zip:
zip.extractall()
- 您的所有图像都已解压缩并存储在 Colab Disk 上,现在您可以更快地访问它们。
- 在 keras 中使用生成器,例如
flow_from_directory 或创建自己的生成器
- 在适合您的模型时使用您的生成器:
moel.fit(train_generator, steps_per_epoch = ntrain // batch_size,
epochs=epochs,validation_data=val_generator,
validation_steps= nval // batch_size)
ntrain 和 nval 是您的训练和验证数据集中的图像数量