在开始前分享一些pytorch的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的首先,我想说的是,做深度学习,不管是做研究还是做应用,代码永远是无法避免的那一关。做应用就不必说了,基本就是各种工程问题,现场调试。即使是做研究,代码甚至比 idea要重要。这是因为,如果没有实验验证你的idea的话,那么你的idea是不值一钱的。做深度学习如果你不会编代码的话,这个问题会一直缠绕着你,直到你解决它为止。
另外,关于学习编码,我想结合我自己的体会来说一下。由于我是学数学出身,对于代码其实有种恐惧感。当你克服这种恐惧感愿意坐下来去调试一下代码的话,其实你就成功了一半。我第一个上手的代码是Faster RCNN,大家其实知道Faster RCNN的网络结构极为复杂,当我看到十几个文件夹,二十多个python文件相互调用的时候,当时真快哭了。我强迫自己静下心来,把所有的代码读懂,一行一行地手敲到电脑上,然后调试通过,但是精度不够。我运行的第一个Faster RCNN最后mAP只有55左右。然后,我又在网上重新下载了另一个版本的Faster RCNN,把所有代码读懂,一行一行地敲,调试通过,mAP就基本达到了官方宣布的精度,75左右。然后,我又把FPN机制加上了。总共从头到尾实现了三个版本的Faster RCNN,时间跨度达8个月。但是,收获也是巨大的,我详细地了解了数据集结构、数据读入读出机制、预处理、网络架构及网络实现中相当多的trick。一定不要小瞧这些trick,它对于模型性能的作用甚至是决定性的,一些trick的应用甚至决定了你的网络或训练机制是否是可行的。还有,各种超参的调节方法等等。可以说,经过了这个阶段,我就就从pytorch的门外汉到了一个基本可以实现自己想法的半熟手,对代码的恐惧感已经完全克服了