[深度学习编程细节-1]:Deterministic Model[确定性模型]

278 阅读2分钟

[深度学习编程细节-1]:Deterministic Model[确定性模型]

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

更新keras(tensorflow)的随机种子固定代码
更新排版
-19.12.06

适用于:

  1. 利用DL技术做CV方向研究的同学
  2. 想打kaggle,天池之类比赛的同学
  3. 愿意直接看图片和英语笔记的同学 : )

本系列分享的优点:

  1. 少走弯路,节约时间。研究在于谁idea实现的又快又准;错误的参数会导致在浪费几天甚至几星期的时间;好的编程习惯能加快整个工作流程的速度。

  2. 时效性与预防bug。 网上很多问题的回答年限较久而且众说纷纭,本系列保证分享的代码及解决方案都是我本人亲自跑过,成功实现的;与其在运行时遇到bug, 之后查找解决方案,不如一开始就知道什么bug可能发生。

  3. 细节。 讲算法原理的文章数不胜数,不同算法跑出来之后的性能到底如何;针对不同的任务,哪种优化器最为合适;如何处理数据获得最大的精度提升?

  4. 及时回复。 如果对本系列分享中哪部分内容有疑问,或者觉得分享有误,欢迎评论或私信!


Deterministic Model[确定性模型]

第一天分享模型的可复现性,比赛和研究的第一步也是最重要的一步。

例1:

  • 最初打kaggle的时候,一份代码不做任何改动,跑三次的结果分别是98.220%,98.620%,98.400%。
  • 我将模型的从常规模型换成Dense连接模型,跑一次结果是98.420%。
  • 新模型的性能比旧模型好还是坏?

例2:

  • 模型不做数据增强效果是98.400%
  • 加了旋转,偏移之后效果是98.380%, 两次实验都没固定随机数。
  • 得到一次结果要15分钟,半小时过去了,对这个问题我们到底要不要数据增强?

解决方案:固定随机种子,流程及注意事项如下:

本日pdf链接:1drv.ms/b/s!AmvJMVS…