论版本管理的重要性

算一算,工作也有两年了。在工程上,无论算法模型,还是算法接口,都会需要不断的更新和优化。这时就显出了版本管理的重要性。有一次,我们的一个算法上线后分析结果,发现有些不必要的漏检。后来发现是负责算法整体接口的同事没有及时沟通和更新新的算法lib导致的,这个问题查了好几天才发现。

这两天,我重新训练caffe模型。明明数据准备的比之前的更合理了,而模型训练曲线也超级漂亮。测试时却发现模型没有任何的区分能力。debug时,又频繁报错。cudnn报错,查找后才知道是有同事在服务器上装了cudnn6.0导致的版本不兼容。换回5.0,debug成功。然而模型依然没有区分能力,在次测试。试试训练集,md,同样没有区分能力。百思不得其姐。为啥原来的有区分能行,优化后的却没有呢。debug,观察log。等等,fc8new哪儿来的,好吧,使用了原来的deploy模型,换回来。又出现shape不对,好吧,train_val中了类别忘改了。擦。恨不得抽自己两个耳刮子。修改,重新训练模型。

使用深度学习训练模型有一段时间了。由于模型训练上之后过来查看结果就行了,有时候会同步进行一些数据整理的工作。这样没有错,但是认真、仔细非常重要。不能为了充分利用时间而导致每见事情都急匆匆的,反而造成了很多不必要的时间浪费。我的总结有3条:

1. 认真准备训练数据,数据的质量很重要。

2. 训练前认真查看模型参数是否正确,避免低级错误。

3. 前两条非常重要,所谓训练模型,不过是动动手指,按下回车。

其实数据和调参才是深度学习搬砖师在工程上做的很多事情,要学会坦然的接受。然后在积累型架构,loss类型等技巧。不然,每天都会在无穷无尽的混乱中,长此以往,就真的是被自己的不良习惯消耗了蓬勃的职场灿烂了。

猜你喜欢

转载自blog.csdn.net/u010205128/article/details/80802196