今天回答一个朋友问的问题。
“我在入门深度学习的过程中,从配环境到 debug 全是坑,解决问题的时间远超跑模型的时间。
为什么入门深度学习这么难?”
这个问题真的问到我的心坎里了,我只能说,入门深度学习这件事,我有经验。
如果你也有类似的疑问,一定要往下看。
多年前,我从机械硕士毕业转码搞软件开发,然后转行做深度学习算法,已有不少年了。
转行的过程,就是从零开始的过程。
无论是自学C++、Python这种编程技能,还是学习AI算法,还是钻研计算机体系结构,每一部分都有很多的感悟。
这里重点说一下学习AI算法的经历和感受。
记得第一次参加与深度学习算法的面试时,是一个小公司,面试官问我什么是权值?
那会儿深度学习还远不像现在这么火,面试问的问题很基础,什么是权值这种简单的问题,我估计是真的很难再碰到了。
但那次面试失败了。
后来又面过很多公司,最后幸运的是进入了一家 AI 芯片算法公司,在那里有大量的时间边工作边学习,算是入门了深度学习。
看下我当时是怎么入的门?
1. 基础技能欠缺,就想尽一切办法弥补,不要瞻前顾后。
比如,我当时C++基础有些薄弱,就买了一个399的C++课程,一个百度资深工程师的录播课。
我每天上下班路上坚持看。
从家里到公司坐地铁刚好半小时,每天上下班看一个小时,坚持了 3 个月,将课程视频来回看了 6 遍,然后到公司一有闲暇时间就练习课程中的技术,3个月下来,C++就真的是很熟练了。
以至于后来的面试,我甚至可以和面试官探讨很多C++模板的底层实现。
一旦学会了C++,再去学python就真的非常容易。
2. 要学深度学习算法不要光看书,一定要练手,一定要亲自写算法。
吴恩达的课程很经典,很多入门深度学习的同学都会看,我当时也看了,吴恩达也算是我半个深度学习理论的领路人吧。
在学习算法原理的基础上,我会把很多算法都自己实现一遍,这得益于C++和 python 技能的熟练。
自己手写这些算法是为了加深对这些算法的理解,为什么要手写,因为调用三方库和自己手写是两种完全不一样的学习体验。
调用三方库比如 numpy 或者 torch,很多人都会调用,但是对初学者来说只是会使用,我认为算法本身只有自己可以手写出来才是真正学到手。
我还手写过不少的神经网络。
比如Github上放的这个是我曾经写过的一个,链接为:
https://github.com/dongtuoc/resnet50_zero。
目前已经收获了97个星标了,有点意外。

如果你想有一些代码实战,可以去上面的链接pull下代码试一试。
在完成以上两点(编程基础和算法基础)之后,我的深度学习入门基本就完成了。
剩下的就是在工作中不断地打磨自己对算法的理解,不断的精进自己的水平。
最后,再回答一下上面那个同学的问题。
深度学习入门确实很难,但秘诀也很简单,那就是——
学习加实践,再加一条坚持就可以了。
初学确实很多东西看起来都不懂,但是一点点啃下来之后,就会发现难点正在就一点点消失,这其中最怕的就是半途而废。
本文作者分享了从机械专业转行深度学习的心路历程,强调基础技能的补充和动手实践的重要性。通过系统学习C++和Python,以及亲手实现深度学习算法,作者成功入门并提供了一个自己实现的ResNet50模型的GitHub链接。
1768

被折叠的 条评论
为什么被折叠?



