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

问题描述 投票:0回答:2

我正在使用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)

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

泽维尔

python keras deep-learning google-colaboratory
2个回答
0
投票

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


0
投票

我一直在尝试,对于那些好奇的人,我无法使用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/')

以便笔记本识别路径

© www.soinside.com 2019 - 2024. All rights reserved.