问题描述
如果我想从 kaggle notebook 切换到 Colab notebook,我可以从 kaggle 下载 notebook,然后在 Google Colab 中打开 notebook。这样做的问题是您通常还需要下载和上传 kaggle 数据集,这非常费力。
如果你有一个小数据集或者你只需要一个较小的数据集文件,你可以将数据集放入 kaggle notebook 期望的相同文件夹结构中。因此,您需要在 Google Colab 中创建该结构,例如 kaggle/input/
或其他任何内容,然后将其上传到那里。这不是问题。
如果您有一个大型数据集,您可以:
- 挂载您的 Google Drive 并使用那里的数据集/文件
- 或者您按照 Easiest way to download kaggle data in Google Colab 上的 Colab 官方指南从 kaggle 下载 kaggle 数据集到 colab,请使用链接了解更多详情:
请按照以下步骤下载和使用 kaggle 数据 Google Colab:
-
转到您的 Google Colab 项目文件并运行以下命令:
-
! pip install -q kaggle
-
from google.colab import files files.upload()
-
创建名为 kaggle 的目录并将 kaggle.json 文件复制到那里。
! mkdir ~/.kaggle ! cp kaggle.json ~/.kaggle/
-
更改文件的权限。
! chmod 600 ~/.kaggle/kaggle.json
-
仅此而已!您可以通过运行此命令来检查是否一切正常。
! kaggle datasets list
下载数据
! kaggle competitions download -c 'name-of-competition'
或者如果您想下载数据集(取自评论):
! kaggle datasets download -d USERNAME/DATASET_NAME
您可以从“copy API”中获取这些数据集名称(如果不清楚) 命令”在 kaggle 数据集页面上“新建笔记本”按钮旁边的“三点下拉”中。
问题来了:这似乎只适用于较小的数据集。我试过了
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