在刚进入机器学习这个领域的时候很多人都有一个困扰,每次面对长篇大论的PyTorch或者TensorFlow代码,总是觉得无从下“眼”,更别说理解别人的代码实现然后复现了。
那我们该如何提升自己深度学习代码能力呢?
01
确保自己两个基础能力
(1)OOD,即面向对象的编程设计的能力
大型的机器学习模型项目代码,往往是通过精细的类的设计来组织的。你的OOD基础,决定了你以后阅读,理解,以及自己写一个机器学习项目的能力的上限。在阅读一个机器学习项目的时候,除了模型本身的实现,整个项目的代码是怎么通过OOD组织的,也是需要你去注意,去学习的。
(2)Pytorch或者tensorflow的基础
入门一个工具并不是很困难。甚至你只要阅读半个小时官方Tutorial,你就能马上动手实现一个Feed forward Neural Network的项目。
这些入门知识并不是我这里指的基础。这里的基础指的是Pytorch这个框架的一些基础的概念,比如什么是AutoGrade, gradience是如何记录的,如何向后传导的,一个tensor包含哪些信息,什么是计算图什么是动态图机制等等。
你对PyTorch这些基础概念的理解有多深,是另一个决定你深度学习代码水平上线的东西。
02
多看多思考多亲自写
这是一个大部分人都知道但是并不一定能做到的事情。提升代码能力最快的方式一定不是看各种各样教材或者教程视频,而是自己亲自去读代码,亲自动手去动手写代码。
一开始的时候你会发现自己理解代码的速度很慢,很困难,这也是劝退最多人的一个阶段。很多人发现自己理解代码实在困难,就放弃了。
你首先需要意识到,自己开始学习时一定有这么一个困难时期,然后你要相信自己通过积累,通过坚持,一定能度过这个阶段。
开始的时候,我们可以从一些重要模型的开源实现看起。
刚开始,我们要看得仔细,也就是一行一行看,然后确保自己理解每一行在做什么。如果有不懂的话就百度Google搜索。
这个时候一定是每读五行就有一行不懂,一定不要放弃,就像学英语一样,最开始读英语文章的速度一定是很慢的,但是训练了一段时间后,你的速度就会越来越快。
接着你要亲自动手去复现这些项目。哪怕是看一行,抄一行,都可以。动手与不动手,对于代码水平提升来说,是非常重要的一个因素。
过了看一行抄一行的阶段,就可以看一段,理解一段,然后写一段。
然后就是看一个类的实习,然后再复现出一个类,知道自己能完整复现一个项目。
学习新知识的过程一定不能急于求成。相信只要大家坚持多看多想多写,一定能很好得扎实得提升自己的代码水平。
本篇由篱笆老师Lan导师分享,有任何建议或疑问 欢迎大家留言告诉我们~