我正在尝试将kaggle对象定位挑战数据下载到google中,以便我可以使用它来训练我的模型。Kaggle使用一个API来方便和快速地访问他们的数据集。(https://github.com/Kaggle/kaggle-api)然而,当在google中调用命令“-c竞赛下载-c imagenet-对象-本地化-挑战”时,它找不到包含我的用户名和api-key的kaggle.json文件。
在我的mac电脑上运行jupyter笔记本时,我没有遇到这个问题,但是由于我想使用google的gpu作为我的模型,所以我开始使用google。因为kaggle期望用户名和API -键位于位于kaggle.json目录中的.kaggle文件中,所以我首先创建了目录.kaggle,然后创建了文件kaggle.json,然后将用户名和api-键写入其中(下面的示例不显示用户名和api-key)。然后,我尝试为kaggle在调用kaggle下载命令时使用json文件配置路径。
!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找不到我的json文件。如何在google中使用API?
发布于 2019-06-29 17:19:54
正如错误说的那样,您需要将kaggle.json放在正确的位置。
尝试:
!mv .kaggle /root/然后再运行你的代码。
发布于 2019-08-07 20:16:57
根据kaggle api文档的说法,json寻找凭证的位置是~/.kaggle/kaggle.json,因为google环境是基于Linux的。在您的代码片段中,您尝试配置path参数,但它不习惯于查找凭据json:
因此,google环境的完整工作片段应该是:
!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发布于 2020-12-28 07:00:44
https://stackoverflow.com/questions/56816537
复制相似问题