Deep learnin on Google Colab: loading large image dataset is very long, how to accelerate the process?
我正在使用Keras构建深度学习模型,并加快计算速度,我想使用google colab上可用的GPU。
我的图像文件已经加载到我的Google驱动器上。我有24'000张图像要在4000张图像上进行训练以测试我的模型。
但是,当我将图像加载到数组中时,需要很长时间(将近2小时)
因此,每次我使用google colab笔记本时,这样做不是很方便。
您知道如何加快这一过程吗?这是我当前的代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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并工作之前,对特定的数据文件夹使用
1 | print(os.listdir("./drive/My Drive/Colab Notebooks/dataset")) |
trainX, trainy = parse_img_data('/content/drive/My Drive/Training_set/')
savez_compressed('dataset.npz', trainX, train)
您可以第一次加载和保存数据,然后一遍又一遍地使用它
data=np.load('/content/drive/My Drive/dataset.npz')
trainX,trainy=data['arr_0'],data['arr_1']
我一直在尝试,对于那些好奇的人,我无法使用目录驱动器中带有Google驱动器内部文件夹的流。 collab文件环境无法读取路径,并显示"文件夹不存在"错误。我一直在尝试解决问题并搜索堆栈,类似的问题已在此处与Google合作发布,在这里Google Colab无法访问驱动器内容,没有有效的解决方案,由于某种原因,很多人对提出要求的人持否定态度。
我发现在google colab中读取20k图像的唯一解决方案是上传它们,然后对其进行处理,浪费了两个可悲的时间。这是有道理的,google使用id标识驱动器内部的事物,来自目录的流要求它既要标识数据集,又要标识具有文件夹绝对路径的类,这与google驱动器标识方法不兼容。另一种可能是使用Google云环境,而不是我想并付款。我们免费提供了许多免费软件。这是我的新手对情况的了解,如果有误,请纠正我。
edit1:我能够使用Google collab上目录中的流,google也会用路径识别事物,问题是,如果您使用os.getcwd(),它将无法正常工作,如果您使用它,它将告诉您当前的工作目录是" / content",而实际上是" / content / drive /我的驱动器/foldersinsideyourdrive/...../folderthathasyourcollabnotebook/。如果在traingenerator中更改了路径,则它包括此内容设置,并忽略os,它可以工作,但是,即使使用目录中的流,但仍然存在ram问题,无论如何也无法训练我的cnn,但这可能只是我自己发生的事情。
确保执行
1 2 | from google.colab import drive drive.mount('/content/drive/') |
以便笔记本识别路径
您可以尝试挂载Google云端硬盘文件夹(您可以从"示例"菜单中找到代码段),然后将