要基于pytorch做深度学习,但是我代码水平很低,我应该如何学习呢?
要基于pytorch做深度学习,但是我代码水平很低,我应该如何学习呢?在开始前分享一些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的门外汉到了一个基本可以实现自己想法的半熟手。对代码的恐惧感已经完全克服了。
本文暂时没有评论,来添加一个吧(●'◡'●)