[深度学习编程细节-4]:kaggle多组测试及提交提速

133 阅读1分钟

[深度学习编程细节-4]:kaggle多组测试及提交提速

本专题会分享一些我自己的研究,竞赛经验和习惯,只注重于提升模型的准确率, 源自个人的OneNote笔记,没有一些方便阅读的优化,每章内容较少,争取每日一更。-19.12.08


今天主要分享kaggle比赛中,避免提交测试结果到leadboard时,系统重复运行代码导致浪费时间的问题。

在kaggle中,我们每个版本的代码会被运行两次

  1. 在选择commit的时候,系统会建一个和你当前环境一样的docker跑你的结果。
  2. 在提交预测结果,需要测试在测试集上面的分数时,系统会再跑一遍你的全部代码。
    PS: 仅限于kernel only 的比赛。

假设我们的代码运行一次(训练+预测)要1000s, 那么每次提交预测结果就会浪费1000s。
正确及最好的解决方案是,建立两个kernel,一个专用于训练,一个专用于测试。

同时,我推荐使用script而不是notebook,因为在scirpt里,我们方便整个主干部分定义成main,之后在if name =main 里多次调用 main, 只需改一些超参数,就可以一次运行得到多组结果。

今日正文链接:

1drv.ms/b/s!AmvJMVS…