kaggle数据集汇总_Kaggle比赛快速上手演示

AI的需求日趋庞大,而Kaggle是一个不错的学习平台,这里实机演示一段一个Kaggle正常比赛的流程,新手照着做上手能快许多。

(Kaggle有什么用?见这篇知乎文章):

Kaggle如何入门?​www.zhihu.com
2ef1ddb0d69d664d6ada9c2c42c0ec34.png
Kaggle​www.kaggle.com

Kaggle申请账号一些坑:

之前有小伙伴用qq邮箱死活收不到验证码,换成163就好了。这里强烈建议用gmail,笔者用的hotmail也可。

那么下面演示开始:

kaggle数据集汇总_Kaggle比赛快速上手演示_第1张图片
  • 首先我们来到Kaggle主页选取Compete。

kaggle数据集汇总_Kaggle比赛快速上手演示_第2张图片
  • 这里有一大堆的比赛可以选择,都是正经比赛非练手项目,我们以Prostate cANcer graDe Assessment(PANDA) Challeng为演示项目(吐槽:这里也是强行PANDA)。

kaggle数据集汇总_Kaggle比赛快速上手演示_第3张图片
  • 进入到PANDA比赛可以在Overview-Description里读一下比赛内容,这里我们不读了,直接进入到Evaluation看一看评分规则,发现是拿Kappa Score来评的,于是这个比赛跟踪Local Kappa Score就显得尤为重要。Timeline里去看一看时间线,尤其是合队时间,不要超过了(这里解释一下合队,一般比赛每个人每日都有3-5次提交机会,而一个队伍最多5次,所以一般要组队的都是先分开打,这样每个人提交次数多一些,到合队deadline再合成一队,合队可以在上图Team那一栏里进行)。再看一看Code Requirements,如果是Code Competition的话,就是提交模型与代码到Kaggle的kernel里去跑分,会比直接提交结果的比赛多坑(主要是Kaggle kernel的坑),我们这个比赛就是kernel的比赛。

kaggle数据集汇总_Kaggle比赛快速上手演示_第4张图片
  • 来到Data,可以浏览当前比赛的数据集。这个383G的实在是太大了,不过不要紧,通常讨论版(Discussion)里都会有其他玩家压缩图片,我们在Discussion里使用浏览器搜索(Ctrl+F)"resize",没有就往下拖,刷出新的内容,找到一些resize之后的图片。这里我们选择xhlulu做的1G的图片,方便做baseline。

xhlulu resize的PANDA数据集

  • 好了,这时候我们要先把数据集下到我们跑训练模型的机器,还没有折腾环境?不着急,网上很多AI平台都有机器可租,那些机器都已布好环境,这里我们选择一个我发现的新的平台,比较的便宜:
Featurize​featurize.cn

不用着急充钱,新用户会弹出微信群提示(不要点叉,一旦点叉就没有了)。先扫码进微信群领取20元试用金,这20元足够我们跑baseline了。

kaggle数据集汇总_Kaggle比赛快速上手演示_第5张图片
  • 申请一台实例,直接点"使用"就行。这里我们选P106-100的机器,比较的便宜,跑PANDA的baseline也绰绰有余。申请后在"我租用的实例"里会出现我们租用的机器,点击"工作区"即可进入到控制界面。

kaggle数据集汇总_Kaggle比赛快速上手演示_第6张图片
  • 我们先打开Terminal,依次:
  1. mkdir -p /home/jovyan/data
  2. cd /home/jovyan/data
  3. pip install --user kaggle

此时我们还差一个kaggle的token,我们打开kaggle主页:

kaggle数据集汇总_Kaggle比赛快速上手演示_第7张图片
  • 依次点击右上角的头像、My Account、Create New API Token,这样就会下载一个kaggle的token文件到我们本机,我们将这个token拖到featurize控制台的左侧目录中,并将它移动到:
  1. mkdir -p /home/jovyan/work/.kaggle
  2. cp ./kaggle.json /home/jovyan/work/.kaggle

这样我们在featurize上就可以自由使用kaggle API了,注意如果重新点了Create New API Token,那就要再更新一次在featurize里的kaggle.json.

kaggle数据集汇总_Kaggle比赛快速上手演示_第8张图片
  • 回到我们刚找到的resize数据集,在右侧省略号里可以复制下载数据集的命令。

kaggle数据集汇总_Kaggle比赛快速上手演示_第9张图片
  • 回到这个目录(/home/jovyan/data), 粘贴已复制的命令kaggle datasets download -d xhlulu/panda-resized-train-data-512x512

很快便下载好了。下载好后解压数据集。

kaggle数据集汇总_Kaggle比赛快速上手演示_第10张图片
  • 我们在featurize控制台点"+"号打开一个新的Python3 Notebook,开始创建我们的baseline。

这里提供一份参考代码:PANDA比赛参考baseline,包括了可视化、训练数据结构、加载数据集、开始训练,此代码你可能需要修改一下数据集、csv文件的路径,如果有不存在的包,就在notebook中!pip install [package]一下就好了。

kaggle数据集汇总_Kaggle比赛快速上手演示_第11张图片
  • 这里由于我们alchemistic_directory填的是./efficientnet-b0,是单fold"fold-1",所以我们可以进入到efficientnet-b0/fold-1/graphs里去看看loss function的图,看看模型是否已经收敛。我们将收敛后的模型efficientnet-b0/fold-1/best.pth.tar下载到本机,准备上传到kaggle进行测验分数。

请注意!这里我们漏了一个很重要的流程,就是先在本机测验模型的accuracy、confusion matrix等。由于此文只讲解kaggle提交流程,暂做忽略,请务必自己完成。

kaggle数据集汇总_Kaggle比赛快速上手演示_第12张图片
  • 回到Kaggle,在PANDA这个比赛中依次选取Notebooks、New Notebook,这样Kaggle会为我们建一个notebook,此notebook有使用时间限制,尤其是GPU的使用,该比赛为每周30小时,每周6刷新。

kaggle数据集汇总_Kaggle比赛快速上手演示_第13张图片
  • 在kaggle notebook里,点击Add data,由于我们是用efficientnet-b0训练的模型,可以在这里搜索到我们需要的efficientnet-pytorch,以及Upload a Dataset上传我们已训练好的模型。

这里也提供一份代码,注意修改其中变动的参数PANDA baseline Kaggle kernel inference

kaggle数据集汇总_Kaggle比赛快速上手演示_第14张图片
  • 其中这一段,之所以要用防御式编程的理由是:code比赛的数据集只有submit时才会出现,如果不这么写连Kaggle kernel的运行都通不过……

提交成功后便可看到自己的分数。这只是一个Kaggle比赛的粗略上手流程,如何提升模型的精度请自行学习。

你可能感兴趣的:(kaggle数据集汇总)