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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入学习Google Colab:加载大型图像数据集的时间很长,如何加速这个过程?相关的知识,希望对你有一定的参考价值。

我正在使用Keras开发深度学习模型,并加快计算速度,我想使用google colab上提供的GPU。

我的图片文件已加载到我的google云端硬盘上。我有24'000张图像用于训练4'000用于测试我的模型。

然而,当我将图像加载到数组中时,需要很长时间(差不多2小时)所以每次使用谷歌colab笔记本时这样做都不是很方便。

你知道如何加速这个过程吗?这是我目前的代码:

TRAIN_DIR  = "Training_set/X"
TRAIN_DIR_Y = "Training_set/Y"
IMG_SIZE = 128

def parse_img_data(path):
    X_train = []
    index_train = []
    img_ind = []
    for img in tqdm(os.listdir(path)):
        img_ind.append(int(img.split('.')[0])-1)
        path = os.path.join(TRAIN_DIR,img)
        img = cv2.imread(path,cv2.IMREAD_COLOR)
        img = cv2.resize(img, (IMG_SIZE,IMG_SIZE))
        X_train.append(np.array(img))
    return np.array(img_ind), np.array(X_train)

ind_train, X_train = parse_img_data(TRAIN_DIR)

如果你能帮助我,我将非常感激。

泽维尔

答案

您可以尝试安装Google云端硬盘文件夹(您可以在示例菜单中找到代码段)并使用ImageDataGeneratorflow_from_directory()。检查documentation here

另一答案

我一直在尝试,对于那些好奇的人,我无法使用google驱动器中的文件夹中的目录流。协作文件环境不读取路径并给出“文件夹不存在”错误。我一直试图解决问题和搜索堆栈,类似的问题已发布在这里Google collaborative和这里Google Colab can't access drive content,没有有效的解决方案,并由于某种原因,许多downvotes给那些问。

我发现在谷歌colab中读取20k图像的唯一解决方案是上传它们然后处理它们,浪费了两个悲伤时间。这是有道理的,google使用id标识驱动器内部的内容,来自目录的流需要识别数据集,以及具有文件夹绝对路径的类,与google驱动器识别方法不兼容。替代方案可能是使用谷歌云环境,而不是我想和付费。我们正在获得相当多的免费,因为它是。这是我对新手的了解情况,如有错误请指正。

edit1:我能够在google collab上使用来自目录的流,谷歌也确实用路径识别东西,问题是如果你使用os.getcwd(),它不能正常工作,如果你使用它会给你那个当前的工作目录是“/ content”,实际上是“/ content / drive / My Drive / foldersinsideyourdrive /...../ folderthathasyourcollabnotebook /。”如果你在traingenerator中更改路径以便它包含此设置,并且忽略操作系统,它的工作原理。但是,即使从目录中使用flow,但是无论如何都无法训练我的cnn,我有ram的问题,可能会发生在我身上的事情。

一定要执行

from google.colab import drive
drive.mount('/content/drive/')

以便笔记本识别路径

以上是关于深入学习Google Colab:加载大型图像数据集的时间很长,如何加速这个过程?的主要内容,如果未能解决你的问题,请参考以下文章

将大型 Txt 文件上传到 Google Colab

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

在 google colab Python 上处理大型数组

如何在 Google Colab 上以流模式加载数据集?

如何将 MNIST 数据加载到 Google Colab Jupyter Notebook 中? [关闭]

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