keras Google Colab无法访问驱动器内容

jpfvwuh4  于 2023-01-05  发布在  Go
关注(0)|答案(9)|浏览(159)

即使我定义了我的谷歌驱动器(和我的数据集在它)谷歌colab,但当我运行我的代码,我给这个错误:FileNotFoundError:[Errno 2]没有这样的文件或目录:'内容/驱动器/我的驱动器/....
我已经在Google Colab中定义了Google Drive,我可以通过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)
tjjdgumg

tjjdgumg1#

装载后,移至数据集文件夹。

cd content/drive/My Drive/Convolutional_Neural_Networks/dataset/

不要使用!。然后将目录设置为./training_set

wfypjpf4

wfypjpf42#

我认为您的/content/drive...路径中缺少一个前导/
通常通过以下方式装载驱动器文件

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

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

iecba09b

iecba09b3#

我一直在尝试,对于那些好奇,它一直不可能为我使用从目录与谷歌驱动器内的文件夹流. collab文件环境不读取路径,并给出一个“文件夹不存在”错误.我一直在试图解决这个问题,搜索堆栈,类似的问题已张贴在这里谷歌协作和这里深度学习谷歌Colab:加载大型图像数据集非常长,如何加快这一进程?没有有效的解决方案,并且由于某种原因,许多人对那些询问的人投了反对票。
我发现在google colab中阅读20 k图像的唯一解决方案是上传它们,然后处理它们,浪费了两个可悲的小时。这是有道理的,google用id识别驱动器内的东西,从目录流动要求它既被识别数据集,又被识别带有文件夹绝对路径的类,不兼容谷歌驱动器的识别方法。替代可能是使用谷歌云环境,而不是我想和支付。我们得到了相当多的免费,因为它是。这是我对新手的认识情况,如有错误请指正。
编辑1:我可以在google collab上使用flow from directory,google也可以用path来标识东西,问题是如果你使用os.getcwd(),它不能正常工作,如果你使用它它会给予你当前工作目录是“/content”,而实际上是“/content/驱动器/我的驱动器/驱动器中的文件夹/...../作为您的同事笔记本的文件夹/”。如果您在traingenerator中更改路径,使其包括此设置,并忽略os,它就可以工作。然而,我有问题的ram即使使用流从目录,不能训练我的cnn无论如何,可能是一些刚刚发生在我身上虽然。

wmtdaxz3

wmtdaxz34#

从google.colab导入驱动器驱动器.mount('/content/drive')
使用上面的代码,你可以加载你的驱动器在colab,当加载图像用途:

directory='drive/My Drive/Convolutional_Neural_Networks/dataset/test_set',

不是这个

directory='content/drive/My Drive/Convolutional_Neural_Networks/dataset/test_set',

对于keras图像数据生成器数据集结构:

vof42yt1

vof42yt15#

我从Colab的默认命令开始

from google.colab import drive
drive.mount('/gdrive', force_remount=True)

我做的主要改变是

img_width, img_height = 64, 64
train_data_dir = '/gdrive/My Drive/Colab Notebooks/dataset/training_set'
validation_data_dir = '/gdrive/My Drive/Colab Notebooks/dataset/test_set'

from tensorflow.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)

train_generator = train_datagen.flow_from_directory(
 train_data_dir,
 target_size=(64, 64),
 batch_size=32,
 class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
 validation_data_dir,
 target_size=(64, 64),
 batch_size=32,
 class_mode='binary')

classifier.fit_generator(
 train_generator,
 steps_per_epoch=8000, # Number of images in train set
 epochs=25,
 validation_data=validation_generator,
 validation_steps=2000)

这对我很有效,我希望这能帮助到一些人。忽略压痕。

fwzugrvs

fwzugrvs6#

由于某种原因,你必须%cd到你的谷歌驱动器文件夹,然后执行你的代码,以便访问文件从你的驱动器或写文件在那里。
首先挂载你的谷歌驱动器:

from google.colab import drive
drive.mount('/gdrive', force_remount=True)

然后cd到你的谷歌驱动器,然后运行你的代码:

%cd /content/drive/My\ Drive/
directory='./Convolutional_Neural_Networks/dataset/training_set'
9lowa7mx

9lowa7mx7#

尝试删除“内容”,它为我工作后,1小时的故障排除在这里

cd drive/My Drive/dissertation
mbskvtky

mbskvtky8#

装载到/content/drive后
从google. colab导入驱动器驱动器. mount('/content/drive ')

将工作目录更改为以前创建的文件夹

cd '/content/drive/我的驱动器/植物病害识别'
这会导致我们无法更改目录的错误。要解决此错误,我们可以使用
% cd/content/驱动器/我的\驱动器/植物病害识别

c0vxltue

c0vxltue9#

遵循装载驱动器建议后:

from google.colab import drive
drive.mount('/content/drive', force_remount=True)

我意识到直接通过名称引用数据集不起作用,加载数据集的路径(父路径)起作用了。
这不起作用:

dataset = load_dataset("/content/drive/MyDrive/my_filename.json")

这确实奏效了:

dataset = load_dataset("/content/drive/MyDrive")

相关问题