Colab 的生产力:直接从网络(例如 Kaggle)数据库加载还是将它们上传到 colab 目录然后提取它们? [复制]
Posted
技术标签:
【中文标题】Colab 的生产力:直接从网络(例如 Kaggle)数据库加载还是将它们上传到 colab 目录然后提取它们? [复制]【英文标题】:The productivity of Colab: to load directly from the Net(e.g. Kaggle) databases or to upload them on the colab directory and then extract them? [duplicate] 【发布时间】:2021-12-15 05:56:49 【问题描述】:我试图寻找在 colab 中处理大型数据文件的最快方法。我开始怀疑是直接从网站上传它们(例如 Kaggle),还是将它们上传到 colab 自己的目录并从那里使用它们会更好。我能够做到后者,但是当文件开始解压缩时,系统突然停止工作并崩溃。我又试了一次,下一次我等了更长的时间,直到所有东西都解开了。但是,在第二步,系统又崩溃了。
您会建议在不使系统崩溃的情况下使用(大型)数据集的最佳方法吗?
我使用的代码:
1)
首先,我在 colab 的主目录中从 Kaggle 制作并复制了一个 json 文件。
from google.colab import drive
drive.mount('/content/drive')
! pip install kaggle
! mkdir ~/.kaggle
! cp kaggle.json ~/.kaggle/
! chmod 600 ~/.kaggle/kaggle.json
! kaggle competitions download forest-cover-type-prediction
之后,我尝试解压从Kaggle下载的Colab目录下的数据文件
! mkdir unzipped
! unzip train.csv.zip -d unzipped
! unzip test.csv.zip -d unzipped
然后从csv中读取数据
import numpy as np
import pandas as pd
train = pd.read_csv("/content/unzipped/train.csv")
test = pd.read_csv("/content/unzipped/test.csv")
X = train.to_numpy()[100000:5000000,0:4].astype(float)
Y = train.to_numpy()[100000:5000000,4].astype(int).flatten()
问题:如何直接从硬盘上传,哪种方式更快?
【问题讨论】:
我尝试直接从硬盘导入,但无法识别。 您是否正在尝试将您的 本地 驱动器挂载到 colab ??? 当然,不。我这里要展示的是这两种在程序中加载数据的方式。第一个是在 colab 目录中上传数据,并在那里解包,第二个是直接从硬盘驱动器(本地)上传,这不会发生未知原因。而且,第三个,我这里没有展示,因为我不知道怎么做,直接来自数据的站点。 实际上,让我用这种格式来表达问题:从 Kaggle 导入数据到 Colab 的最佳方式是哪种,为什么(每种方法的正面和负面)?我正在寻找的是上传数据以供程序使用的最快、更可靠的方法。 恐怕关于做任何事情的“最佳”方式的问题实际上是基于意见的题外话;并且似乎下面的答案解决了您的第三种方式(当然前提是您将在 colab 中运行,而不是在本地计算机中)。 【参考方案1】:尝试从 Kaggle 的帐户选项卡获取 API 令牌。然后上传到google colab,试试下面的代码初始化Kaggle库,
! pip install kaggle
! mkdir ~/.kaggle
! cp kaggle.json ~/.kaggle/
! chmod 600 ~/.kaggle/kaggle.json
设置完成后使用以下语法下载数据集
! kaggle datasets download <name-of-dataset>
详细作品更多参考click here
【讨论】:
好的,然后它开始滞后。滞后从何而来?我的电脑,还是 colab? 云本身滞后 colab 无法在您的计算机上运行 @MarkoKolaksazov 看不到你的电脑如何进入这里的讨论;建议的命令将在 colab 中运行。 从PC上运行文件怎么样,怎么办?这里完全不解释colab.research.google.com/notebooks/… 如果文件在您的电脑中,那么您需要上传到驱动器或 colab 的上传文件部分才能访问这些文件。以上是关于Colab 的生产力:直接从网络(例如 Kaggle)数据库加载还是将它们上传到 colab 目录然后提取它们? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何直接将文件从 colab 复制到 github repo? (可以将 notebook 保存在 Github repo 中)
未能直接从Github在Google Colab中安装Sk-learn(scikit-learn)
是否有在 Google Colab 上运行 Web 应用程序的通用方法?