【发布时间】:2018-08-24 21:56:45
【问题描述】:
是否可以通过 Google Colab 中的 kaggle API 使用任何可用的数据集?我看到this Colab notebook 中使用了 Kaggle API,但我有点不清楚它提供了对哪些数据集的访问。
【问题讨论】:
标签: dataset kaggle google-colaboratory
是否可以通过 Google Colab 中的 kaggle API 使用任何可用的数据集?我看到this Colab notebook 中使用了 Kaggle API,但我有点不清楚它提供了对哪些数据集的访问。
【问题讨论】:
标签: dataset kaggle google-colaboratory
一步一步--
在 Kaggle 中创建一个 API 密钥。
接下来,向下滚动到 API 访问部分并单击生成
下载 API 密钥。
这会将名为kaggle.json 的文件下载到您的计算机。
您将在 Colab 中使用此文件来访问 Kaggle 数据集和
比赛。
导航到 https://colab.research.google.com/。
使用以下 sn-p 上传您的 kaggle.json 文件
一个代码单元:
from google.colab import files
files.upload()
使用!pip install -q kaggle安装kaggle API
将kaggle.json 文件移动到~/.kaggle,这是
API 客户端希望您的令牌位于:
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
现在您可以使用客户端访问数据集,例如,!kaggle datasets list。
以下是此过程的 Colab 部分的完整示例笔记本: https://colab.research.google.com/drive/1DofKEdQYaXmDWBzuResXWWvxhLgDeVyl
此示例显示上传 kaggle.json 文件、Kaggle API 客户端以及使用 Kaggle 客户端下载数据集。
【讨论】:
!if [ ! -f ~/.kaggle/kaggle.json ]; then python "from google.colab import files \n files.upload()" && mkdir -p ~/.kaggle && cp kaggle.json ~/.kaggle/ && chmod 600 ~/.kaggle/kaggle.json; fi
您应该能够通过 API 访问 Kaggle 上的任何数据集。在此示例中,仅列出了比赛的数据集。您可以看到可以使用此命令访问的数据集:
kaggle datasets list
您还可以通过添加 -s 标签和您感兴趣的搜索词来搜索数据集。因此,这将为您提供有关狗的数据集列表:
kaggle datasets list -s dogs
您可以在documentation here 中找到有关 API 以及如何使用它的更多信息。
希望对您有所帮助! :)
【讨论】:
!df -h 找出磁盘上有多少可用空间。
详细做法:
6.转到Kaggle网站。例如,您要下载任何数据,请单击屏幕右侧的三个点。然后点击复制 API 命令
8.当您执行!ls 时,您会看到我们下载的是一个 zip 文件。
!ls 时,您会发现我们的 csv 文件是从 zip 文件中提取出来的。pd.read_csv,导入 pandas12.如您所见,我们已成功将文件读入 colab。
这会将 kaggle 数据集下载到 google colab 中,您可以在其中执行分析并构建出色的机器学习模型或训练神经网络。
分析愉快!!!
【讨论】:
合并了对此Github gist as Colab Implementation 的最高响应。可以直接复制代码使用。
How to Import a Dataset from Kaggle in Colab
首先你必须做的几件事:
kaggle.json 的身份下载您的凭据以访问 Kaggle API
# Install kaggle packages
!pip install -q kaggle
!pip install -q kaggle-cli
# Colab's file access feature
from google.colab import files
# Upload `kaggle.json` file
uploaded = files.upload()
# Retrieve uploaded file
# print results
for fn in uploaded.keys():
print('User uploaded file "{name}" with length {length} bytes'.format(
name=fn, length=len(uploaded[fn])))
# Then copy kaggle.json into the folder where the API expects to find it.
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!ls ~/.kaggle
现在检查它是否有效!
#list competitions
!kaggle competitions list -s LANL-Earthquake-Prediction
【讨论】:
看看this。
它在后台使用官方的 kaggle api,但会自动执行该过程,因此您不必在每次移除 VM 时都手动重新下载。此外,我在 Colab 上直接使用 Kaggle API 时遇到的另一个问题是通过 Google Drive 传输 Kaggle API 令牌的麻烦。上面的方法也可以自动完成。
免责声明:我是 Clouderizer 的创建者之一。
【讨论】:
首先,运行这个命令来找出这个colab文件存在的地方,它是如何执行的。
!ls -d $PWD/*
它将显示/content/data /content/gdrive /content/models
换句话说,您的当前目录是 root/content/。您的工作目录(密码)是 /content/。所以当你做!ls时,它会显示data gdrive models。
供参考, !允许您在 colab 中运行 linux 命令。
Google 云端硬盘会不断清理 /content 文件夹。因此,您使用 colab 的每个会话、下载的数据集、kaggle json 文件都将消失。这就是自动化流程很重要的原因,这样您就可以专注于编写代码,而不是每次都设置环境。
以 colab 代码块为例,使用您自己的 api 密钥运行它。打开 kaggle.json 文件。你会发现他们的。
# Info on how to get your api key (kaggle.json) here: https://github.com/Kaggle/kaggle-api#api-credentials
!pip install kaggle
{"username":"seunghunsunmoonlee","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
!kaggle competitions download -c dog-breed-identification
os.chdir('/content/competitions/dog-breed-identification')
for file in os.listdir():
zip_ref = zipfile.ZipFile(file, 'r')
zip_ref.extractall()
zip_ref.close()
然后再次运行!ls。您将看到您需要的所有数据。
希望对您有所帮助!
【讨论】:
从 kaggle 下载 google colab 的竞争数据。 我正在研究 google colab,我遇到了同样的问题。但我做了两次。
首先,您必须注册您的手机号码以及您的国家/地区代码。 其次,您必须单击 kaggle 数据集页面上的最后一次提交 然后从 google colab 上的 kaggle.upload kaggle.json 下载 kaggle.json 文件 之后在 google colab 上运行这些代码如下。
!pip install -q kaggle
!mkdir -p ~/.kaggle
!cp kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle competitions download -c web-traffic-time-series-forecasting
【讨论】:
after the steps (1-6) above,使用来自 colab 中特定比赛的数据集,
你可以使用命令:
!kaggle competitions download -c elo-merchant-category-recommendation
这里,elo-merchant-category-recommendation 是比赛的名称。
【讨论】:
使用 Kaggle API 在 Google Colab 中使用 Kaggle 数据集的快速指南
(1) 下载 Kaggle API 令牌。
(2) 将 Google 驱动器挂载到 Colab 笔记本。
from google.colab import drive
drive.mount("/content/gdrive", force_remount=True)
(3) 将“kaggle.json”文件上传到谷歌驱动器中您要下载 Kaggle 数据集的文件夹中。
(4) 安装 Kaggle API。
!pip install kaggle
(5) 将当前工作目录更改为您要下载 Kaggle 数据集的位置。
%cd /content/gdrive/MyDrive/DataSets/house_price_data/
(6) 运行以下代码配置“kaggle.json”的路径。
import os
os.environ['KAGGLE_CONFIG_DIR'] = "/content/gdrive/MyDrive/DataSets/house_price_data/"
(7) 下载数据集。
!kaggle competitions download -c house-prices-advanced-regression-techniques
【讨论】:
最重要的部分是在下载文件之前:
在 Kaggle 网页的竞赛部分,您必须点击:
迟交或参加比赛
和
接受 KAGGLE 竞赛网页上的规则和条件
如果没有,复制api文件后,开始下载数据集后,结果显示403错误。
【讨论】:
一个hacky方式:
archive.zip开头的请求
! 附加到命令的开头,然后运行它这绝对是一种不如 API 可靠的方法,但仍然是一种选择。
【讨论】:
我发现接受的答案非常全面,但想补充一点:
!kaggle competitions download -c dogs-vs-cats
或大多数其他下载仍然无法正常工作。您可能会收到以下错误:
403 - 禁止
这不是很冗长。它想说:“请访问 kaggle.com 并接受规则(例如,针对该比赛)。您不能通过 API 接受!文档中明确说明(参见 Public API documentation | Kaggle):
就像通过用户界面正常参加比赛一样,您必须阅读并接受规则才能下载数据或提交内容。您不能通过 API 接受竞赛规则。你必须通过访问 Kaggle 网站并接受那里的规则来做到这一点。
是的,这可能是一条评论,但我缺少足够的声誉来发表评论。
【讨论】:
import os
os.makedirs("/content/.kaggle/")
import json
token = {"username":"your_username_here","key":"your_kaggle_key_here"}
with open('/content/.kaggle/kaggle.json', 'a+') as file:
json.dump(token, file)
import shutil
os.makedirs("/.kaggle/")
src="/content/.kaggle/kaggle.json"
des="/.kaggle/kaggle.json"
shutil.copy(src,des)
os.makedirs("/root/.kaggle/")
!cp /content/.kaggle/kaggle.json ~/.kaggle/kaggle.json
!kaggle config set -n path -v /content
#https://towardsdatascience.com/setting-up-kaggle-in-google-colab-ebb281b61463
!kaggle datasets download -d xhlulu/siim-covid19-resized-to-512px-png
截至 21 年 5 月 29 日,我在 Colab 上为我工作!
【讨论】: