1、接到一个项目之后心潮澎湃,脑子里马上闪现出faster rcnn、resnet、mask rcnn等各种牛逼的算法。
2、结果发现图片都不知道存在哪……于是反馈给产品经理,开了一通会议,确定图片数据库在某个位置,准备读表爬虫!
3、结果发现表的信息是乱七八糟的,一张表里面有图片链接,但没有这个图片的标签信息;另一张表里面有标签信息,但又没有图片链接。找了许久才发现两张表可以用图片id来结合,行吧,不就是查表的事情,写一堆代码把这些信息整理起来吧!
4、花了一天终于整理出图片链接的csv了,交给爬虫组爬了三天三夜,期间在YY到时图片下下来之后可以用什么算法。
5、拿到图片了,发现类别有了,但是bbox、关键点坐标信息都没有啊!咋整,上网找了个labelme自己整个1000张用着先呗,然后花了两天整了少量图片出来,期间还要劝服同事帮忙。
6、剩下的图片交给标注员去标注。接着就是根据前两天YY到的算法,上github找找有没有现成的模型,然后git clone。修改了一点输入输出,用公共数据集顺利跑通!看来还是不错的嘛!
7、回头把自己的数据放进去试试,简直一塌糊涂,那是当然的。现在就得回去仔细研究论文,看看作者的各种实现细节,然后魔改模型finetune。再次测试,咦,有点效果喔~
8、这时候领导紧急开了个会议,说现在目标有点改变,我们往另一个方向走吧。
9、开始研究这个领域的所有经典论文,每篇论文都看上好几次,看到最后几乎把整个领域的主要脉络摸清了,然后磨刀霍霍向模型!
10、国际惯例先找github,但是很不幸我想要的算法并没有开源实现,那我来做第一个吧!
11、马上照着菜单(论文),啪啪啪构建proposal模型,各种自定义层结构,特殊的loss function,菜单中提到的weight decay、learning rate decrease,几乎把论文所有角落的细节都翻遍了,目前为止进度还行,但是慢着!论文里提到的一个层,作者只是一笔带过了,没详细说明这是怎么实现的!
12、都到这地步了还能放弃?开玩笑,立刻照着related work那一章提到的所有论文寻找线索,于是各种谷歌github知乎stackoverflow,终于弄懂了这个层的数学原理!
13、好不容易把模型复现出来了,好家伙,开始用标注员准备好的数据来训练。
14、慢着,这loss曲线不对劲啊?为啥会是直线,而且一轮收敛?不不不,肯定哪里出了错误,我得把代码重头检查一遍!
15、费好大劲终于找出bug,代码也顺利跑通了,然后进入各种调参无限死循环。
16、老板:那个,我们决定还是换个方向吧,需求变了。
17、。。。。。。。。。
算法工程师时常自嘲成调包师,而且外行人听多了就还真以为调包很容易,深度学习和其它机器学习算法不同的是,一篇新论文算法的出现都要写很长的代码去复现,而且前提是你深刻了解作者的思想,无奈的是,有时候作者不会把所有细节都告诉你!!!