Google Colab не может получить доступ к содержимому диска - PullRequest
0 голосов
/ 19 января 2019

Несмотря на то, что я определил свой Google Диск (и мой набор данных в нем) для Google Colab, но когда я запускаю свой код, я выдаю эту ошибку: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'content / drive / My Drive/....

Я уже определил диск Google в Google Colab, и я могу получить к нему доступ через 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)

Ответы [ 3 ]

0 голосов
/ 14 апреля 2019

Я пытался, и для тех, кому любопытно, я не смог использовать поток из каталога с папкой на диске Google.Среда файла коллаба не считывает путь и выдает ошибку «Папка не существует».Я пытался решить проблему и поиск в стеке, похожие вопросы были размещены здесь Google для совместной работы и здесь Глубокое изучение в Google Colab: загрузка большого набора данных изображений очень длинная, как ускорить процесс? , без эффективного решения и по какой-то причине много отрицательных отзывов к тем, кто спрашивает.

Единственное решение, которое я нахожу для чтения 20k изображений в google colab, - это загрузить их, а затем обработать, потратив двагрустные часы, чтобы сделать это.Это имеет смысл, Google идентифицирует вещи внутри диска с помощью идентификаторов, поток из каталога требует, чтобы он идентифицировал как набор данных, так и классы с абсолютными путями к папкам, что несовместимо с методом идентификации дисков Google.Альтернативой может быть использование облачной среды Google вместо этого, я полагаю, и оплата. Мы получаем довольно много бесплатно, как есть.Это мое понимание ситуации новичком, пожалуйста, исправьте меня, если не так.

edit1: я смог использовать поток из каталога на Google Collab, Google также определяет вещи с путем, дело в том, что если вы используетеos.getcwd (), он не работает должным образом, если вы используете его, он выдаст вам, что текущим рабочим каталогом является "/ content", если на самом деле это "/ content / drive / My Drive / folderinsideyourdrive / ...../folderthathasyourcollabnotebook/. Если вы измените путь в traingenerator так, чтобы он включал этот параметр, и проигнорировали os, он работает. Однако у меня были проблемы с оперативной памятью даже при использовании потока из каталога, так как я не смог обучить мой cnn в любом случаеможет быть что-то, что просто случается со мной, хотя.

0 голосов
/ 09 июня 2019

После монтирования перейдите в папку набора данных.

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

Не используйте! Затем установите ваш каталог как ./training_set

0 голосов
/ 19 января 2019

Я думаю, что вам не хватает ведущего / в вашем /content/drive... пути.

Обычно вы монтируете файлы дисков через

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

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

...