在 google colab 中找不到 kaggle.json 文件

新手上路,请多包涵

我正在尝试将 kaggle imagenet 对象定位挑战数据下载到 google colab 中,以便我可以使用它来训练我的模型。 Kaggle 使用 API 来轻松快速地访问其数据集。 ( https://github.com/Kaggle/kaggle-api ) 但是,在 google colab 中调用命令“kaggle competitions download -c imagenet-object-localization-challenge”时,找不到 kaggle.json 文件包含我的用户名和 api-key。

我在 mac 上运行 jupyter notebook 时没有遇到这个问题,但是因为我想为我的模型使用 google 的 gpu,所以我开始使用 google colab。因为 kaggle API 期望用户名和 api-key 位于 .kaggle 目录中的 kaggle.json 文件中,所以我首先创建了目录 .kaggle,然后是文件 kaggle.json,我在其中写入了我的用户名和 api-密钥(下面的示例不显示我的用户名和 api 密钥)。然后我尝试配置我的 json 文件的路径,供 kaggle 在调用 kaggle 下载命令时使用。

 !pip install kaggle

!mkdir .kaggle
!touch .kaggle/kaggle.json

api_token = {"username":"username","key":"api-key"}

import json
import zipfile
import os
with open('/content/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)

!chmod 600 /content/.kaggle/kaggle.json
!kaggle config path -p /content

但是,在运行最后一条命令时,出现错误:

 IOError: Could not find kaggle.json. Make sure it's located in /root/.kaggle. Or use the environment method.

我的目标是使用以下命令从 kaggle 获取数据集:

 !kaggle competitions download -c imagenet-object-localization-challenge
os.chdir('/content/competitions/imagenet-object-localization-challenge')
for file in os.listdir():
    zip_ref = zipfile.ZipFile(file, 'r')
    zip_ref.extractall()
    zip_ref.close()

我不明白为什么 kaggle API 找不到我的 json 文件。如何在 google colab 中使用 API?

原文由 Diego Domenig 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

如错误所述,您需要将 kaggle.json 放在正确的位置。

尝试:

 !mv .kaggle /root/

然后再次运行您的代码。

原文由 korakot 发布,翻译遵循 CC BY-SA 4.0 许可协议

根据 kaggle api 文档,凭据 json 正在寻找的位置是 ~/.kaggle/kaggle.json 因为 google colab 环境是基于 Linux 的。在您的代码片段中,您尝试配置 path 参数,但它不用于查找凭证 json:

- 路径:将下载文件的文件夹,默认为当前工作目录

所以 google colab 环境的完整工作片段是:

 !mkdir ~/.kaggle
!touch ~/.kaggle/kaggle.json

api_token = {"username":"username","key":"api-key"}

import json

with open('/root/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)

!chmod 600 ~/.kaggle/kaggle.json

然后一些api调用就像

!kaggle datasets download -d datamunge/sign-language-mnist

原文由 Egor B Eremeev 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题