如何提高深度学习代码能力

个人经历:一个正在努力提高自身代码能力和实践能力的求职人员。
背景:想通过几个实践项目提高工程实践能力和底层代码能力。提出这个问题是因为自己对深度学习的探究更多停留在能根据文章看懂代码,能根据代码更深入地理解文章的阶段,能修改他人代码为自己所用的阶段。而工程实践必须更进一步到能写出自己的代码。在网上查阅和提问后,得出他人的几个回答,在此记录,以便以后能查阅自己在这段时间的想法和学习的方向。也欢迎经验丰富的前辈评论如何写出深度学习代码这一问题。

回答1:(来自知乎)很多新手初学机器学习,上来就追求复杂的深度学习模型和高大上的算法如AlexNet, ResNet。tensorflow和keras各种API全部调用一遍,却不知道自己在干什么,俗称调包侠。一个观点:脱离实际业务和数据的算法都是空中楼阁。一条路径:按照我的学习经验,从数据清洗到特征工程,再用最传统的算法把整个流程走一遍,不断的比较和尝试各种算法,把特征和算法搞透,才是最快最靠谱的学习方法。两个项目:国外的Kaggle和阿里云天池都是获取项目经验的好途径。我的建议是每个入门机器学习的人都应该参加两个项目。一个传统机器学习应用场景的项目,如阿里移动推荐算法。通过传统应用场景熟悉逻辑斯特回归,支持向量机和梯度增强决策树等算法。一个深度学习应用场景的项目,如肺癌识别和诊断,通过深度学习应用场景熟悉深度学习各种算法的优势和应用场景。

回答2:(来自知乎)1) 详细理解每一个深度学习模块的功能,实现细节;2) 在1)的基础上独立实现一些简单的深度学习框架;本人从Andrej Karpathy的convnet.js学习了很多;基本可以from scratch的撸一个可以用的动态图的深度学习框架(当然远效率不如现成大库pyTorch, TensorFlow等)3) 在2)的学习过程中或者更好的是快速学习完成之后,开始着手研究自己领域的相关论文,手动实现论文中的算法,并和论文开源代码的最后结果进行比较,以验证自己写得正确;4) 进入正循环阶段,读paper,写code,想idea,写code…

回答3:纯手写一个框架比较难,在刚开始,如果做工程实践,可以先跑通别人的代码,然后深入理解代码和原理。目前很多公司都是在别人的工作基础上作优化,调整和裁剪。

回答4:初级阶段,用别人的代码改,了解一下代码框架,弄清楚原理,写论文要创新,但同时也强调要会调用一些现有的函数、代码和已有成果。

回答5:自己写一个框架比较难,基本上是在代码上改动,部分是自己写,一点点改。从改进别人的模型开始,如果要设计自己的模型就得花很长时间。但一旦设计出来,就能成长很多。

回答6:代码写的出来是一方面,能达到最好的性能又是一方面。同样的数据集,同样的模型,不同的人做出来差别就很大。

总结:正确判断自己处于哪个阶段很重要。处于哪个阶段就要找到自己这个阶段的正确实践方法才能达到你最初的目的。我正处在初级阶段,仍然以修改已有的框架和代码,部分自己写,深入理解代码的原理,适当改进模型为主。

发布了5 篇原创文章 · 获赞 1 · 访问量 159

猜你喜欢

转载自blog.csdn.net/m0_37820219/article/details/105635445