#摘要
虽然陆陆续续接触过深度学习的一些相关知识,但是从来没有系统地学习和总结过。加上之前研究的领域是SLAM(实时建图和定位),没有很好的机会直接应用深度学习技术,实践深度学习的机会也比较少。近段时间希望能够全身心地投入到深度学习的领域中来,于是想要写一系列的博文来记录一下自己的成长。本期的主题就是,第一次参加kaggle比赛的心得,作为kaggle小白,对深度学习框架如pytorch等也不非常熟悉,在第一次kaggle比赛severstal-steel-defect-detection中,取得了314/2436的成绩,还是比较值得纪念的。附上比赛链接和截图:defect-detection,

#比赛过程
因为第一次参加,所以我也搜集了一些前人的比赛心得,看了几篇,我觉得这篇心得写得最好。让我印象最深的一点就是,特征工程很重要,其它全没记住,哈哈。
正题开始。我准备参加比赛的时候,可供选择的比赛并不多,加上我想做图像处理相关的比赛,就选了缺陷检测的这个。第一天,我把比赛相关信息都看了一遍,介绍、数据、评估标准等等,然后去discussion把置顶的几条看了一下,这几条还挺关键的,还有一个提供了一个链接视频,是讲如何参加kernel-only的比赛的。
本来想着去github上找一个开源的经典检测的代码,然后在自己电脑上训练。意外发现在Notebook模块,很多大佬开源一些分数相当不错的kernel,而且可以直接提交到比赛后端运行的。对于我们这种小白来说,当真是学习的好机会,也是我会爱上这个比赛的原因,国际友人这种开源、互相学习的氛围当真值得学习。
在开源的kernel中,我选择了一个评分最高的,copy了一下,提交,最后运行成功,首次排名就有了381,这事可让我高兴了一天呢。非常感谢作者,附上作者kernel链接。主要思想就是用3个Unet network,对图像进行预测,再对预测结果去平均;最后,移除小于阈值的区域。作者提出,可以在检测之前添加一个分类器,对是否存在缺陷进行检测,来移除 false positive的预测。
于是,仔细研读了kernel代码,还去下载了分类器的代码,研读了代码,在作者的基础上添加了分类器部分,

结果得到了进一步的提升。
不过,作者说理论上能达到0.91,而我的结果还是只有0.907,我一直无法理解。猜想可能是作者提供的模型不够准确,需要自己下载分类器的模型,然后讲static_dictionary模型序列化,转换为C++和部署用的torch.jit的格式。但是我在配环境的时候,一直报C++编译器 BAI-imcompatible with pytorch,BUG还没解决,比赛已经结束。我的kaggle首战也就到此为止了,有些遗憾。

#展望
0.仔细深入代码的每一句,学习人家的代码框架。
1.比赛还要继续参加,积累经验,努力下一次可以自己搭建一套框架,从训练到测试,而不是套用别人框架。
2.下来努力把CS231上完,希望对深度学习的理论、组件有更加深入的认识。
3.希望自己能在实践中总结出一套特征工程,训练,组件的使用等的tips。

第一次参加kaggle比赛的一些收获与心得,记录一下相关推荐

  1. 【第一次参加kaggle比赛记录-Quora Insincere Questions Classification】- Word Embedding

    In summary, word embeddings are a representation of the *semantics* of a word, efficiently encoding ...

  2. 第一次参加Kaggle拿银总结

    转载:http://scarletpan.github.io/summary-of-get-a-silver-medal-in-kaggle/ 在这篇博客开始之前,我必须感谢@Prof. Cai给我提 ...

  3. 参加kaggle比赛

    我参加Kaggle比赛的体会 转载于:https://www.cnblogs.com/think90/p/5813786.html

  4. 第一次参加DC比赛总结

    第一次参加DC比赛,选择一个不太难的"游戏玩家付费金额预测大赛"进行,虽说看了各种'top 1%'.'top 10%'.'top 5%'等文章,成绩依然还是不理想.总结原因发现还是 ...

  5. 第一次参加创业比赛有感——老人异常行为检测

    首先想说明的是,结局是失败的. 不过,的确是一次很好的体验和尝试.做了一段时间风投,用投资人的眼光评判了许许多多创业项目,但是再换种视角,从创业者的角度来思考,是不是会有不同的启发呢? 这次的经历是, ...

  6. 参加Kaggle比赛的流程

    请提前准备好python的数据分析相关库,例如pandas.numpy.sklearn等 1. 参加比赛:Titanic 1.1 在比赛页面下载数据 这里以"泰坦尼克号生存率预测" ...

  7. 记人生第一次参加Codeforces比赛

    2022年4月30日14:33分,距离Codeforces Round #785 (Div. 2)开始还有两分钟.我在谷歌浏览器里面打开了网页,一个字都看不懂, 用nb的谷歌翻译搞出来以后是这样的: ...

  8. 第一次实战Kaggle比赛:预测房价

    整理自<动手学深度学习>,有一些补充 一. 用到的库函数 1.1 pd.concat() 用于连接pandas数据表.本文中的用处是,连接测试集和数据集,做k交叉数据集. pd.conca ...

  9. 第一次参加kaggle竞赛:Happywhale - Whale and Dolphin Identification(ID识别问题:top9.4% 150/1558)

    一.ID识别问题 ID1: ID2: 下图是哪个ID: 二.训练数据分布 51033张训练图片, 27956张测试图片,public LB用了24%的测试图片,最后结果以private LB的结果为准 ...

最新文章

  1. 数据集超越MS COCO,2020智源x旷视Objects365物体检测挑战赛开赛
  2. MyBatis 注释
  3. KVM中ioeventfd创建与触发的大致流程(十四)
  4. Linux stty
  5. Codeforces 558E A Simple Task
  6. 信息学奥赛一本通(1254:走出迷宫)
  7. Python实现桶排序
  8. 梦想cad控件 android,梦想CAD控件 2018.7.26更新
  9. 如何使用STL寫XML轉檔程式? (C/C++) (STL) (Web) (XML)
  10. PostgreSQL查询优化器详解之逻辑优化篇
  11. RS232RS485协议原理和应用
  12. java单例模式代码
  13. PMP第三节:项目管理过程
  14. AWS VPC(二)-----创建VPC Peering
  15. 【JAVA】根据汉字拼音首字母排序 不同类型处理
  16. python常用数学符号_ML-常用数学符号(示例代码)
  17. 设计师点评互联网巨头Logo
  18. 《Essential C++》学习笔记 第三章:泛型编程风格(一)
  19. 如果不想当程序员,学编程有什么用?答案显而易见!
  20. 使用计算机解决科学研究,应用计算机科学

热门文章

  1. crypt-5+n凯撒密码
  2. 【银河麒麟V10】【服务器】IO调度算法与性能分析
  3. centos 磁盘重新分区操作实践
  4. QT创建文件夹并在文件夹下创建文件
  5. 2021-09-10
  6. 谷歌浏览器检查元素时,开发者工具打开的很慢
  7. STM32——SPI通信实验
  8. 没有喝上5G头啖汤的魅族,很难有出彩的机会了
  9. AVFormatContext、AV_read_frame、av_seek_frame
  10. 很漂亮实用的jQuery实例123个