【问题标题】:Downloading Data from Google Drive Colab从 Google Drive Colab 下载数据
【发布时间】:2021-04-30 15:04:20
【问题描述】:

总的来说,我是 TensorFlow 和 python 的初学者,因此我们将不胜感激。我正在关注来自 tensorflow 的 this tutorial,仅使用我自己的数据。

所以我试图从我上传到谷歌驱动器的文件夹中获得的链接下载我自己的数据。然后,我将在图像分类器模型中使用该数据。但是,我开始看到图像被下载并显示:

dataset_url_training = "https://drive.google.com/drive/folders/genericid?usp=sharing" 
data_dir_training = tf.keras.utils.get_file('flower_photos', origin=dataset_url_training, untar=True)
data_dir_training = pathlib.Path(data_dir_training)

从https://drive.google.com/drive/folders/genericid?usp=sharing下载数据

106496/未知 - 2s 14us/步

然后它就停止了。当我尝试使用以下代码时:

print(image_count)

输出吐出:0

我真的很困惑,我不知道该怎么办。一些建议是制作一个 zip 文件 url,但这仅适用于单个文件,不适用于像我这样的整个文件夹。此外,据我所知,Google Drive 不允许您获取 zip 文件的链接,只允许获取用于共享的链接(为了澄清,它们是我自己的文件)。

谢谢。

编辑 1:只是想清楚一点:我不是在寻找路径。我正在寻找一个 URL,因此使用了一个目录。我也尝试过使用。 zip 文件的链接,但我收到与以前相同的错误消息。

【问题讨论】:

    标签: python tensorflow keras download google-colaboratory


    【解决方案1】:

    当您想在 colab 中使用 google drive 中的文件时,您可以将我们的驱动器挂载到 colab。

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

    比你可以从谷歌驱动器打开文件。 例如,您的文件位于主驱动器页面上的目录“文件夹”中:

    path = "gdrive/My Drive/folder/flower_photos"
    

    编辑/添加:

    为了更清楚,您从教程中更改了这部分

    import pathlib
    dataset_url = "https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz"
    data_dir = tf.keras.utils.get_file('flower_photos', origin=dataset_url, untar=True)
    data_dir = pathlib.Path(data_dir)
    

    到这里

    import pathlib
    from google.colab import drive
    drive.mount('/content/gdrive')
    data_dir = "gdrive/My Drive/flower_photos"
    data_dir = pathlib.Path(data_dir)
    

    【讨论】:

    • 您好 Der-Davidos,感谢您的帮助。但是,我确实按照您所说的做了,它给了我: ValueError: unknown url type: 'gdrive/My Drive/folder/flower_photos' 编辑:我还尝试删除空格,使用反斜杠,将 /content 放在开头,几乎任何其他迭代。他们都没有工作
    • 我假设你还在使用 tf.keras.utils.get_file()?因为这是用于从 url 获取文件,如 here 所述。但是您不再需要从 url 获取它,您应该能够通过使用目录路径而不是 data_dir 来继续本教程。
    • 是的,我是,但问题是如果我不使用目录而是使用路径,我将如何修改以下代码?我将不得不更改我的所有代码,所以我宁愿只使用 URL。如果你能让我知道如何做到这一点,我将不胜感激。 ds_train = tf.keras.preprocessing.image_dataset_from_directory( data_dir, validation_split=0.2, subset="training", seed=123, image_size=(img_height, img_width), batch_size=batch_size)
    • 我对我的答案做了补充,希望现在更清楚了。
    • 非常感谢!!你合法地救了我的命
    猜你喜欢
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多