繁体   English   中英

谷歌 Colab 上的深度学习:加载大型图像数据集很长,如何加速这个过程?

[英]Deep learnin on Google Colab: loading large image dataset is very long, how to accelerate the process?

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

我的图像文件已经加载到我的谷歌驱动器上。 我有 24000 张图像用于训练 4000 张图像以测试我的模型。

但是,当我将图像加载到数组中时,需要很长时间(将近 2 小时),因此每次使用 google colab notebook 时都不太方便。

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

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)

如果你能帮助我,我将不胜感激。

泽维尔

不确定你是否解决了问题。 我遇到了同样的问题。 在我运行 CNN 并工作之前,将os.listdir用于特定数据文件夹之后。

print(os.listdir("./drive/My Drive/Colab Notebooks/dataset"))

from numpy import savez_compressed trainX, trainy = parse_img_data('/content/drive/My Drive/Training_set/') savez_compressed('dataset.npz', trainX, train)

第一次你可以加载和保存数据然后反复使用它

import numpy as np data=np.load('/content/drive/My Drive/dataset.npz') trainX,trainy=data['arr_0'],data['arr_1']

您可以尝试挂载您的 Google Drive 文件夹(您可以从示例菜单中找到代码片段)并使用ImageDataGeneratorflow_from_directory() 在此处查看文档

我一直在尝试,对于那些好奇的人来说,我不可能使用来自目录的流和谷歌驱动器内的文件夹。 协作文件环境不读取路径并给出“文件夹不存在”错误。 我一直在尝试解决问题和搜索堆栈,类似的问题已在此处发布, Google 协作和此处Google Colab 无法访问驱动器内容,没有有效的解决方案,并且出于某种原因,对提出问题的人投了很多反对票

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

编辑 1:我能够在 google collab 上使用来自目录的流,google 也用路径识别事物,问题是如果你使用 os.getcwd(),它不能正常工作,如果你使用它,它会给你当前工作目录是“/content”,而实际上是“/content/drive/My Drive/foldersinsideyourdrive/...../folderthathasyourcollabnotebook/”。如果您在 traingenerator 中更改路径以使其包含此设置,以及忽略操作系统,它有效。但是,即使使用来自目录的流,我也遇到了 ram 问题,无论如何都无法训练我的 cnn,但可能只是发生在我身上的事情。

确保执行

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

以便笔记本识别路径

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM