在Google Colab中使用Kaggle数据集

时间:2018-03-15 22:48:26

标签: dataset kaggle google-colaboratory

是否可以使用Google Colab中kaggle API提供的任何数据集?我看到在this Colab notebook中使用了Kaggle API,但我有点不清楚它提供了哪些数据集访问权限。

14 个答案:

答案 0 :(得分:50)

循序渐进 -

  1. 在Kaggle中创建API密钥。

    要执行此操作,请转到kaggle.com/并打开您的用户设置页面。 settings nav

  2. 接下来,向下滚动到API访问部分,然后点击“生成” 下载API密钥。 api token 这会将名为kaggle.json的文件下载到您的计算机。 您将在Colab中使用此文件来访问Kaggle数据集和 比赛。

  3. 导航至https://colab.research.google.com/。

  4. 使用以下代码段上传您的kaggle.json文件 代码单元格:

    from google.colab import files files.upload()

  5. 使用!pip install -q kaggle

  6. 安装kaggle API
  7. kaggle.json文件移至~/.kaggle,即{。}} API客户端期望找到您的令牌:

    !mkdir -p ~/.kaggle !cp kaggle.json ~/.kaggle/

  8. 现在您可以使用客户端访问数据集,例如!kaggle datasets list

  9. 以下是此过程的Colab部分的完整示例笔记本: 的 https://colab.research.google.com/drive/1DofKEdQYaXmDWBzuResXWWvxhLgDeVyl

    此示例显示上传kaggle.json文件,Kaggle API客户端以及使用Kaggle客户端下载数据集。

答案 1 :(得分:7)

您应该能够通过API访问Kaggle上的任何数据集。在此示例中,仅列出了竞赛的数据集。您可以使用此命令查看可以访问的数据集:

kaggle datasets list

您还可以通过添加-s标记然后添加您感兴趣的搜索词来搜索数据集。因此,这将为您提供有关狗的数据集列表:

kaggle datasets list -s dogs

您可以在documentation here

中找到有关API以及如何使用它的更多信息

希望有所帮助! :)

答案 2 :(得分:3)

我有本教程可直接在Google Colab上使用Kaggle API,而无需通过本地计算机下载和上传数据集。 Kaggle API + Colaboratory

答案 3 :(得分:1)

查看this

它在场景后面使用官方的kaggle api,但是自动执行该过程,因此您不必在每次移除VM时手动重新下载。另外,我在Colab上直接使用Kaggle API面临的另一个问题是通过Google Drive传输Kaggle API令牌的麻烦。上面的方法也可以自动化。

免责声明:我是Clouderizer的创作者之一。

答案 4 :(得分:1)

详细方法:

  1. 转到您个人资料中的我的帐户

enter image description here

  1. 向下滚动,直到找到选项创建新的Api令牌,这将下载名为kaggle.json的文件

enter image description here

  1. 转到Colab上传文件kaggle.json

enter image description here

  1. pip install kaggle

enter image description here

  1. 创建一个名为kaggle的新文件夹,将kaggle.json复制到kaggle文件夹中,并仅为您(用户)设置读写权限。

enter image description here

6。转到Kaggle网站。例如,要下载任何数据,请单击屏幕右侧的三个点。然后点击复制API命令

enter image description here

  1. 转到colab,粘贴API命令

enter image description here

8。当您执行!ls时,您会看到我们的下载文件是一个zip文件。

enter image description here

  1. 要使用以下命令解压缩文件

enter image description here

  1. 现在,当您执行!ls时,您会发现我们的csv文件是从zip文件中提取的。

enter image description here

  1. 要读取文件,请执行简单的pd.read_csv,请导入熊猫

enter image description here

12。如您所见,我们已成功将文件读入colab。

enter image description here

这会将kaggle数据集下载到google colab中,您可以在其中执行分析并构建出色的机器学习模型或训练神经网络。

快乐分析!

答案 5 :(得分:0)

在上述步骤(1-6)之后,要使用colab中特定比赛的数据集, 您可以使用以下命令:

!kaggle竞赛下载-c elo-merchant-category-recommendation

(elo-merchant-category-recommendation是比赛的名称。)

答案 6 :(得分:0)

首先,运行此命令以找出此colab文件在何处以及如何执行。 enter image description here !ls -d $PWD/* 它将显示/content/data /content/gdrive /content/models 换句话说,您当前的目录是root / content /。您的工作目录(pwd)为/ content /。因此,当您执行!ls时,它将显示data gdrive models。 仅供参考!允许您在colab中运行linux命令。

Google云端硬盘会继续清理/ content文件夹。因此,您使用colab的每个会话,下载的数据集,kaggle json文件都将消失。这就是自动化该过程非常重要的原因,因此您可以专注于编写代码,而不必每次都设置环境。

以您自己的api密钥作为示例在colab代码块中运行它。打开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。您将看到所需的所有数据。 希望对您有帮助!

答案 7 :(得分:0)

结合了对此Github gist as Colab Implementation的最高反应。您可以直接复制代码并使用它。

How to Import a Dataset from Kaggle in Colab

方法:

首先要做的几件事:

  1. 注册Kaggle
  2. 报名参加您想从中访问数据的比赛(例如LANL-Earthquake-Prediction competition)。
  3. 下载您的凭据以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

答案 8 :(得分:0)

要从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

答案 9 :(得分:0)

最重要的部分是在下载文件之前:

在 Kaggle 网页的竞赛部分,您必须点击:

迟交或参加比赛

接受 KAGGLE 竞赛网页上的规则和条件

如果不是,复制api文件后,启动下载数据集后,结果显示403错误。

答案 10 :(得分:0)

一种hacky方式:

  1. 登录后进入数据集页面
  2. 打开 Chrome 开发者工具,然后转到网络面板
  3. 点击 Kaggle 上的“下载”按钮
  4. 点击后,您会在“网络”窗格中看到许多请求,找到以 archive.zip 开头的请求
  5. 右键单击该请求,然后复制 -> 复制为 cURL (bash)。现在你复制了命令
  6. 在 Colab 上,粘贴命令并将 ! 附加到命令的开头,然后运行它

这绝对是一种不如 API 可靠的方法,但仍然是一种选择。

答案 11 :(得分:0)

我发现接受的答案非常全面,但想补充一点:

!kaggle competitions download -c dogs-vs-cats

或大多数其他下载仍然无法正常工作。您可能会收到以下错误:

<块引用>

403 - 禁止

这不是很冗长。它想说:“请访问 kaggle.com 并接受规则(例如针对该比赛)。您不能通过 API 接受!文档中明确说明(参见 Public API documentation | Kaggle):

<块引用>

就像通常通过用户界面参加比赛一样,您必须阅读并接受规则才能下载数据或提交。您不能通过 API 接受比赛规则。你必须通过访问 Kaggle 网站并接受那里的规则来做到这一点。

是的,这可能是评论,但我缺少足够的声誉来发表评论。

答案 12 :(得分:0)


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

从 29-05-21 开始在 Colab 上为我工作!

答案 13 :(得分:0)

使用 Kaggle API 在 Google Colab 中使用 Kaggle 数据集的快速指南

(1) 下载 Kaggle API 令牌。

  • 转到“帐户”,在页面下方找到“API”部分。
  • 点击“创建新的 API 令牌”按钮。
  • 将下载“kaggle.json”文件。

(2) 将 Google 驱动器挂载到 Colab 笔记本。

  • 这意味着允许 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