0

如果可以的话请帮忙!我有很多单独的图像存储在谷歌存储桶中。我想通过 google colab 从存储桶中检索单个图像。我已经通过 gcsfuse 建立了连接,但仍然无法访问图像。

我努力了:

I = io.imread('/content/coco/Val/Val/val2017/000000000139.jpg')
I = file_io.FileIO('/content/coco/Val/Val/val2017/000000000139.jpg', 'r')
I = tf.io.read_file('/content/coco/Val/Val/val2017/000000000139.jpg', 'r')

没有一个有效,我很困惑。

io.imread 返回“无”

file_io.FileIO 返回“tensorflow.python.lib.io.file_io.FileIO at 0x7fb7e075e588”,我不知道该怎么办。

tf.io.read_file 返回一个空张量。

(我实际上使用的是 PyTorch,而不是 Tensorflow,但经过一些谷歌搜索后,似乎 TensorFlow 可能有答案。)

4

1 回答 1

1

我不清楚您的问题是将文件从 Google Cloud Storage 复制到 Colab 还是使用 Python 访问 Colab 中的文件

Colab 文档中所述,为了使用 Google Cloud Storage,您应该使用 gsutil 工具。

无论如何,我按照以下步骤尝试自己使用 gcsFUSE 工具,并且我能够通过运行 !ls 命令查看存储桶中的对象

脚步:

from google.colab import auth
auth.authenticate_user()

运行此程序后,将生成一个链接,您可以单击它并完成登录。

!echo "deb http://packages.cloud.google.com/apt gcsfuse-bionic main" > /etc/apt/sources.list.d/gcsfuse.list
!curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
!apt -qq update
!apt -qq install gcsfuse

使用它在 colab 上安装 gcsfuse。

!mkdir folderOnColab
!gcsfuse folderOnBucket folderOnColab

将 folderOnColab 替换为您的文件夹的所需名称,并将 folderOnBucket 替换为您的存储桶的名称,删除名称前的 gs://。

通过执行所有这些步骤并运行!ls命令,我能够在 Colab 的新文件夹中看到存储桶中的文件。

于 2020-04-20T11:32:15.940 回答