如何从 Kaggle 将一个太大的 Kaggle 数据集的选定文件加载到 Colab 中
Posted
技术标签:
【中文标题】如何从 Kaggle 将一个太大的 Kaggle 数据集的选定文件加载到 Colab 中【英文标题】:How to load just one chosen file of a way too large Kaggle dataset from Kaggle into Colab 【发布时间】:2021-08-15 04:28:12 【问题描述】:如果我想从 Kaggle 笔记本切换到 Colab 笔记本,我可以从 Kaggle 下载笔记本并在 Google Colab 中打开该笔记本。这样做的问题是,您通常还需要下载和上传 Kaggle 数据集,这相当费力。
如果您有一个小数据集,或者您只需要一个较小的数据集文件,您可以将数据集放入 Kaggle 笔记本预期的相同文件夹结构中。因此,您需要在 Google Colab 中创建该结构,例如 kaggle/input/
或其他任何内容,然后将其上传到那里。这不是问题。
但是,如果您有一个大型数据集,您可以:
安装您的 Google 云端硬盘并使用那里的数据集/文件 或者您按照Easiest way to download kaggle data in Google Colab 的 Colab 官方指南将 Kaggle 数据集从 Kaggle 下载到 colab,请使用链接了解更多详细信息:请按照以下步骤下载并使用其中的 kaggle 数据 谷歌 Colab:
转到您的 Kaggle 帐户,滚动到 API 部分并单击过期 API 令牌以删除以前的令牌
点击 Create New API Token - 它会在你的机器上下载 kaggle.json 文件。
转到您的 Google Colab 项目文件并运行以下命令:
! pip install -q kaggle
选择你下载的 kaggle.json 文件
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:从 Kaggle 下载 zip 文件到 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,这需要更多时间和流量。
【问题讨论】:
!kaggle 数据集文件 allen-institute-for-ai/CORD-19-research-challenge !kaggle 数据集下载 allen-institute-for-ai/CORD-19-research-challenge -f 元数据。 csv @The5thcolumnmouse 是的,使用:!kaggle datasets download allen-institute-for-ai/CORD-19-research-challenge -f metadata.csv
它可以工作。 :) 请回答。
【参考方案1】:
您可以编写一个只下载某些文件或一个接一个地下载文件的脚本:
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
【讨论】:
以上是关于如何从 Kaggle 将一个太大的 Kaggle 数据集的选定文件加载到 Colab 中的主要内容,如果未能解决你的问题,请参考以下文章
将数据集直接从 Kaggle 下载到 GoogleColab