如何使用 Tensorflow 从安装的谷歌驱动器加载谷歌 Colab 笔记本中的图像

Ken*_*ith 1 google-drive-api tensorflow google-colaboratory

在 Google Colab 笔记本中,我安装了 Google 驱动器并且可以查看我的文件。我正在尝试加载一个压缩目录,该目录有两个文件夹,每个文件夹中有几个图片文件。

我遵循了 Tensorflow 站点上的一个示例,其中有一个关于如何加载图片的示例,但它使用的是远程位置。这是网站 - https://www.tensorflow.org/tutorials/load_data/images

这是示例中有效的代码:

data_root_orig = tf.keras.utils.get_file(origin='https://storage.googleapis.com/download.tensorflow.org/example_images/flower_photos.tgz',
                                        fname='flower_photos', untar=True)
data_root = pathlib.Path(data_root_orig)
print(data_root)
Run Code Online (Sandbox Code Playgroud)

这是我尝试从已安装的 Google 驱动器引用压缩目录的修订代码:

data_root_orig = tf.keras.utils.get_file(origin='/content/gdrive/My Drive/TrainingPictures/',
                                         fname='TrainingPictures_Car', untar=True)
data_root = pathlib.Path(data_root_orig)
print(data_root)
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ValueError: unknown url type: '/content/gdrive/My Drive/TrainingPictures/'
Run Code Online (Sandbox Code Playgroud)

它显然需要一个 URL 而不是我提供的路径。我想知道如何加载 Google 驱动器提供的压缩目录。

小智 6

在这种情况下,不需要使用tf.keras.utils.get_file(),只有Path就足够了。

这里有 2 种方法来做到这一点

第一的: !unzip -q 'content/gdrive/My Drive/TrainingPictures/TrainingPictures_Car.zip'

它将被解压到“/content/”

import pathlib
data = pathlib.Path('/content/folders_inside_zip') 
count = len(list(data.glob('*/*.jpg')))
count
Run Code Online (Sandbox Code Playgroud)

第二:如果存档已经在谷歌驱动器中解压缩:

import pathlib
data = pathlib.Path('/content/gdrive/My Drive/TrainingPictures/') 
count = len(list(data.glob('*.jpg')))
count
Run Code Online (Sandbox Code Playgroud)