Google Colab无法访问驱动器内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Colab无法访问驱动器内容相关的知识,希望对你有一定的参考价值。

即使我将谷歌驱动器(以及我的数据集)定义为谷歌colab但是当我运行我的代码时,我给出了这个错误:FileNotFoundError:[Errno 2]没有这样的文件或目录:'content / drive / My Drive / .. ..

我已经在google colab中定义了google驱动器,我可以通过google colab访问它但是当我运行我的代码时我给出了这个错误

from keras.models import Sequential
from keras.layers import Convolution2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense
model=Sequential()
model.add(Convolution2D(32,3,3,input_shape=(64,64,3),activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Convolution2D(32,3,3,activation='relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(output_dim=128,activation='relu'))
model.add(Dense(output_dim=1,activation='sigmoid'))
model.compile(optimizer='adam',loss='binary_crossentropy',metrics=['accuracy'])

from keras.preprocessing.image import ImageDataGenerator
train_datagen=ImageDataGenerator(
    rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True)
test_datagen=ImageDataGenerator(rescale=1./255)

training_set=train_datagen.flow_from_directory(
    directory='content/drive/My Drive/Convolutional_Neural_Networks/dataset/training_set',
    target_size=(64,64),
    batch_size=32,
    class_mode='binary')
test_set=test_datagen.flow_from_directory(
    directory='content/drive/My Drive/Convolutional_Neural_Networks/dataset/test_set',
    target_size=(64,64),
    batch_size=32,
    class_mode='binary')

#train
model.fit_generator(
    training_set,
    samples_per_epoch=8000,
    nb_epoch=2,
    validation_data=test_set,
    nb_val_samples=1000)

import numpy as np
from keras.preprocessing import image
test_image=image.load_img('sunn.jpg',target_size=(64,64))
test_image=image.img_to_array(test_image)
test_image=np.expand_dims(test_image,axis=0)
result=model.predict(test_image)
training_set.class_indices
if result[0][0] >= 0.5:
    prediction='dog'
else:
    prediction='cat'
print(prediction)
答案

我想你在/路上错过了一个领先的/content/drive...

通常通过安装Drive文件来安装

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

https://colab.research.google.com/notebooks/io.ipynb#scrollTo=u22w3BFiOveA

另一答案

我一直在尝试,对于那些好奇的人,我无法使用google驱动器中的文件夹中的目录流。协作文件环境不读取路径并给出“文件夹不存在”错误。我一直试图解决问题和搜索堆栈,类似的问题已发布在这里Google collaborative和这里Deep learnin on Google Colab: loading large image dataset is very long, how to accelerate the process?,没有有效的解决方案,并由于某种原因,许多downvotes给那些问。

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

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

以上是关于Google Colab无法访问驱动器内容的主要内容,如果未能解决你的问题,请参考以下文章

在 google colab 中安装驱动器

从Google Colab中的驱动器读取文件

我无法在 Google Colab 中安装我的另一个驱动器

将 .py 文件的整个文件夹导入 google colab

Google colab 无法处理 hdf5 文件

在 Google Colab 中使用 Git 的方法