在Google Colab中使用Kaggle数据集

Using Kaggle Datasets in Google Colab

是否可以使用Google Colab中通过kaggle API提供的任何数据集? 我看到在此Colab笔记本中使用了Kaggle API,但对我而言尚不清楚它提供了哪些数据集的访问权限。


一步步 -

  • 在Kaggle中创建一个API密钥。

    为此,请访问kaggle.com/并打开用户设置页面。
    settings nav

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

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

  • 使用以下代码段上传您的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 API客户端以及使用Kaggle客户端下载数据集。


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

    1
    kaggle datasets list

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

    1
    kaggle datasets list -s dogs

    您可以在此处的文档中找到有关API以及如何使用它的更多信息。

    希望有帮助! :)


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


    看看这个。

    它在后台使用了官方的kaggle api,但是可以自动执行该过程,因此您不必在每次删除VM时都手动重新下载。另外,我直接在Colab上使用Kaggle API时遇到的另一个问题是通过Google云端硬盘传输Kaggle API令牌的麻烦。上面的方法也可以自动执行。

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


    要从kaggle下载google colab上的竞争数据。
    我正在研究Google Colab,但遇到了同样的问题。 但是我做了两次。

    首先,您必须注册您的手机号码以及您的国家代码。
    其次,您必须单击kaggle数据集页面上的最后提交
    然后从Google colab上的kaggle.upload kaggle.json下载kaggle.json文件
    之后,在谷歌合作实验室上运行这些代码如下。

    1
    2
    3
    4
    5
    !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

    将对这个Github要点的最高回应作为Colab实施。您可以直接复制代码并使用它。

    如何从Colab中的Kaggle导入数据集

    方法:

    首先,您需要做的几件事:

  • 注册Kaggle
  • 注册您要访问数据的竞赛(例如,LANL-Earthquake-Prediction竞赛)。
  • 下载您的凭据以kaggle.json的身份访问Kaggle API
  • 1
    2
    3
    # Install kaggle packages
    !pip install -q kaggle
    !pip install -q kaggle-cli
    1
    2
    3
    4
    5
    # Colab's file access feature
    from google.colab import files

    # Upload `kaggle.json` file
    uploaded = files.upload()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 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

    现在检查是否有效!

    1
    2
    #list competitions
    !kaggle competitions list -s LANL-Earthquake-Prediction


    首先,运行此命令以查找此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文件。您会发现它们的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 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。您将看到所需的所有数据。
    希望能帮助到你!


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

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

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