微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 Kaggle 中将过大的 Kaggle 数据集的一个选定文件加载到 Colab

如何解决如何从 Kaggle 中将过大的 Kaggle 数据集的一个选定文件加载到 Colab

如果我想从 kaggle notebook 切换到 Colab notebook,我可以从 kaggle 下载 notebook,然后在 Google Colab 中打开 notebook。这样做的问题是您通常还需要下载和上传 kaggle 数据集,这非常费力。

如果你有一个小数据集或者你只需​​要一个较小的数据集文件,你可以将数据集放入 kaggle notebook 期望的相同文件夹结构中。因此,您需要在 Google Colab 中创建该结构,例如 kaggle/input/ 或其他任何内容,然后将其上传到那里。这不是问题。

如果您有一个大型数据集,您可以:

  • 挂载您的 Google Drive 并使用那里的数据集/文件

enter image description here

请按照以下步骤下载和使用 kaggle 数据 Google Colab:

  1. 转到您的 kaggle 帐户,滚动到 API 部分并单击过期 API 令牌以删除以前的令牌

  2. 点击创建新的 API 令牌 - 它会在你的机器上下载 kaggle.json 文件

  3. 转到您的 Google Colab 项目文件并运行以下命令:

  1.    ! pip install -q kaggle
    
  2. 选择您下载的 kaggle.json 文件

    from google.colab import files
    
    files.upload()
    
  3. 创建名为 kaggle 的目录并将 kaggle.json 文件复制到那里。

    ! mkdir ~/.kaggle
    
    ! cp kaggle.json ~/.kaggle/
    
  4. 更改文件的权限。

    ! chmod 600 ~/.kaggle/kaggle.json
    
  5. 仅此而已!您可以通过运行此命令来检查是否一切正常。

    ! kaggle datasets list
    

下载数据

   ! kaggle competitions download -c 'name-of-competition'

或者如果您想下载数据集(取自评论):

! kaggle datasets download -d USERNAME/DATASET_NAME

您可以从“copy API”中获取这些数据集名称(如果不清楚) 命令”在 kaggle 数据集页面上“新建笔记本”按钮旁边的“三点下拉”中。

enter image description here

问题来了:这似乎只适用于较小的数据集。我试过了

kaggle datasets download -d allen-institute-for-ai/CORD-19-research-challenge

它没有找到那个 API,可能是因为下载 40 GB 的数据受到限制:404 - Not Found

在这种情况下,您只能下载需要的文件并使用挂载的 Google Drive,或者您需要使用 kaggle 而不是 Colab。

有没有办法只将 40 GB CORD-19 kaggle 数据集的 800 MB Metadata.csv 文件下载到 Colab 中?这是文件信息页面链接

https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge?select=metadata.csv

我现在已经在 Google Drive 中加载了文件,我很好奇这是否已经是最好的方法。相比之下,如果在 kaggle 上,整个数据集已经可用,无需下载,并且快速加载,则是相当多的工作。

PS:将 zip 文件kaggle 下载到 Colab 后,需要解压。再次进一步引用quide:

使用 unzip 命令解压数据:

例如创建一个名为train的目录,

   ! mkdir train

在那里解压缩火车数据,

   ! unzip train.zip -d train

更新:我建议安装 Google Drive

在尝试了两种方式(挂载 Google Drive 或直接kaggle 加载)后,如果您的架构允许,我建议挂载 Google Drive。这样做的好处是文件只需要上传一次:Google Colab 和 Google Drive 是直接连接的。挂载 Google Drive 需要额外的步骤来从 kaggle 下载文件,解压缩并将其上传到 Google Drive,并为每个 Python 会话获取并激活一个令牌以安装 Google Drive,但激活令牌会很快完成。使用 kaggle,您需要在每次会话时将文件kaggle 上传到 Google Colab,这需要更多时间和流量。

解决方法

您可以编写一个只下载某些文件或一个接一个下载文件的脚本:

import os

os.environ['KAGGLE_USERNAME'] = "YOUR_USERNAME_HERE"
os.environ['KAGGLE_KEY'] = "YOUR_TOKEN_HERE"

!kaggle datasets files allen-institute-for-ai/CORD-19-research-challenge

!kaggle datasets download allen-institute-for-ai/CORD-19-research-challenge -f metadata.csv

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。