点击小眼睛开启蜘蛛网特效

老潘的宝藏资料分享(不断更新~)

《老潘的宝藏资料分享(不断更新~)》

yahaha~你终于找到这里了。

这里收集了老潘总结的深度原创文珍藏的资料,相信可以帮助到你。

《老潘的宝藏资料分享(不断更新~)》

列一下博客的关键词:深度学习、神经网络、模型部署落地、服务器推理、Pytorch、TensorRT、Caffe、Python、C++、算法等。

如果这里刚好有你需要的,能够帮助到你,我会非常开心(PS:内心无比激动~)。这里的每一篇文章都值得你精读,每周都会更新,有关算法工程师和模型部署工程师的学习路线在文末。

如果you相关疑问,或者想要及时收到老潘发的消息,请拿起微信扫一扫~

《老潘的宝藏资料分享(不断更新~)》

老潘本潘

老潘不是严格的算法工程师,虽然也训练一些模型,但是对模型部署产品落地更为感兴趣,也做过一些开发的工作,编程语言关键词如下:

  • C++|Python|Javascript|PHP|lua|C#|swift

个人最喜欢C++和Python,这两个也较为熟练一些。最初的我,对编程语言也会有一些奇怪的看法(例如:XX是世界上最好的语言!),久而久之发现:编程语言其实没有高低贵贱之分(嗯,编程语言也是有情绪的),每一门语言是为完成不同的任务所设计,各自完成不同的使命。我们不但要精通自己领域所擅长的语言,也更需勇于尝试和探索新的语言,发现它们的美。

编程语言其实都是有共通性的,学好任何一门编程语言(例如C),再去上手其他语言差不多是轻而易举的。大部分的项目都会需要各种语言去构建,各司其职,彼此搭配才能够完成的更好。

《老潘的宝藏资料分享(不断更新~)》

话说回来,如果你对如何成为算法工程师感兴趣,或者想了解模型部署落地开发的具体工作内容如何去开始,亦或是有一些其他编程方面的问题,欢迎到公众号私信我(相信你能找到我),有求必应。

以下几篇文章有一些自己之前的感悟(现在已经工作啦),希望能帮助到和我经历相似的童鞋们。

接下来也会整理一篇深度学习落地部署的文章,以及算法工程师的学习攻略,感兴趣的不要错过~

废话不多说,干货走起。

文章汇总:

创作不易,坚持周更,关注「oldpan博客」不错过推文。

理论分析派

深度学习相关。

工程实战派

光有理论哪儿够,落地部署实战才是最重要的。

Pytorch篇

适合Pytorch进阶的文章:

TensorRT篇

很有质量的TensorRT文章:

TVM

TVM不多说了,自动调优神经网络编译器,神器。

Caffe

多么经典的Caffe。

编程技能篇

工欲善其事必先利其器。

C++

Python

实用工具工具

关于显卡与深度学习装备

部分已过时,不过仍有参考意义!

有趣好玩的项目推荐

正在整理ing…

学习路线以及书籍资源:

如果你是新手,看完此攻略可以让你少走N段弯路~

深度学习学习路线

基本路线《统计学习方法》->《机器学习花书》->《深度学习花书》。课程可以看李宏毅和吴恩达的入门课。非常不建议只看书籍,最好配上项目实战,边学边做

有时间一定要需要看的书籍:

另外推荐大家一本叫做《百面机器学习》的新书,2018年8月份出版的,其中包括了很多机器学习、深度学习面试过程中会遇到的问题,比较适合需要准备面试的机器学习、深度学习方面的算法工程师。

深度学习部署落地

老潘认为算法部署落地这个方向是比较踏实务实的方向,相比“设计模型提出新算法”,对于咱们这种并不天赋异禀的普通人(哈哈,咱们要谦虚)来说,只要你肯付出,收获是肯定有的(不像设计模型,那些巧妙的结果设计不出来就是设计不出来你气不气)。其实算法部署也算是开发了,不仅需要和训练好的模型打交道,有时候也会干一些粗活累活(也就是dirty work),自己用C++、cuda写算子(预处理、op、后处理等等)去实现一些独特的算子。算法部署最常用的语言是啥,当然是C++了,C++虽然复杂,但是由于优异的性能和各种特性(类对象、元编程等),被很多推理框架作为backbone的语言。

部署落地这方面需要学习需要做的事情还是蛮多的。最好还是以项目作为驱动,或者找一些开源的推理部署框架练练手,找一两个开源项目玩玩,找找感觉,自己也就逐渐有方向了。

例如NCNN(优秀)、MNN(牛逼)等框架(还有很多框架这里不一一列举了额),是针对移动端进行部署进行优化的推理引擎,对ARM核进行了优化,如果你想做和移动端或者嵌入式端有关系的,可以看看这两个框架的源码,跑一两个demo找找感觉,另外还有Openvino和TensorRT,分别是对应cpu和gpu端的首推框架(想详细了解可以参考我之前的文章),可以找相关的项目去做做。

部署的流程一般就是:

  • 训练一个模型,也可以是拿一个别人训练好的模型
  • 针对不同平台生成的模型进行转换,也就是俗称的parse、convert,前端解释器
  • 针对转化后的模型进行优化,这一步很重要,涉及到很多优化的步骤
  • 将转化好的模型运行在特定的平台(嵌入端或者服务端)

需要掌握什么技术,学好C++很重要,起码能看懂各种关于部署精巧设计的框架(再列一遍:Caffe、libtorch、ncnn、mnn、tvm、openvino、tensorrt,不完全统计,我就列过我用过的)。当然并行计算编程语言也可以学一个,针对不同的平台而不同,可以先学学cuda,资料更多一些,熟悉熟悉并行计算的原理,对以后学习其他并行语言都有帮助。

部署和落地的重要性…当然是很重要呃,对于硬件公司来说,需要将深度学习算法部署到性能低到离谱的开发板上,因为成本能省就省,这时就需要部署了。在算法层面优化模型是一方面,但更重要的是从底层优化这个模型,这就涉及到部署落地方面的各个知识(手写汇编算子加速、算子融合等等);对于软件公司来说,我们往往需要将算法运行到服务器上,当然服务器可以是布满2080TI的高性能CPU机器,但是如果QPS请求足够高的话,需要的服务器数量也是相当之大的。这个要紧关头,如果我们的模型运行的足够快…可以省机器又可以腾一些buffer上新模型岂不很爽,这个时候也就需要优化模型了,其实优化手段也都差不多,只不过平台从arm等嵌入式端变为gpu等桌面端了。

系统的知识嘛,有是有,不过实际中都是用到啥再看啥,有项目在push你,个人建议直接上手项目,没有自己找找,按需学习。

这里简单总结下可以选择上手:

  • 好用的开源推理框架:caffe NCNN、MNN、TVM
  • 好用的开源推理框架:Openvino、TensorRT(infer不开源)
  • 好用的开源服务器框架:triton-server
  • 好用又不好用的编程语言:C++、CUDA、python

基础知识:计算机原理 编译原理等

后记

以上的路线介绍可能不够详细,更多详细的路线会单独发文,请关注~

书籍路线

作为程序员,相关技能书籍是必不可少的,敲代码累的时候看看书轻松一下(???)也是极为不错的。

书不可贪多,贪多嚼不烂,切记切记。

书籍路线正在完善中,完善后发布~

推荐一个看书神器

看书神器如下,不光是看书,看论文都舒服多了:

《老潘的宝藏资料分享(不断更新~)》

上述是国产文石BOOX-MAX2电纸书,相当于大号Kindle,看论文pdf文档绝配!关于此书的评价可以看:

PS:老潘自己收集了很多书籍,但是苦于没有整理,公众号回复666可获得已经整理好的书籍。其余的正在逐步整理中。

公众号

公众号名称是oldpan博客oldpan博客oldpan博客!重要的事情说三遍。

如果你不满足于上述,请直接公众号私信联系我,不要害羞兄弟!有问必答。

《老潘的宝藏资料分享(不断更新~)》

交流群

进交流群的请私信公众号,回复“加群”即可。

交流一下吗

如果你与我志同道合于此,老潘很愿意与你交流;如果你喜欢老潘的内容,欢迎关注和支持。博客每周更新一篇深度原创文,关注「oldpan博客」不错过最新文章。老潘也会整理一些自己的私藏,希望能帮助到大家,在公众号回复相应code即可:

 

  • 回复”888″获取学习路线资料与文章汇总
  • 回复”666″获取老潘整理好的必看编程书籍和视频资料
  • 回复”001″获取机器学习经典论文集
  • 回复”002″获取面试宝典秘籍
  • 回复”004″获取人工智能必看经典论文合集
  • 回复”005″获取人工智能入门视频
  • 回复”006″获取CUDA珍藏笔记
  • 回复”007″获取CS231N经典课件汇总
  点赞
本篇文章采用 署名-非商业性使用-禁止演绎 4.0 国际 进行许可
转载请务必注明来源: https://oldpan.me/archives/oldpan-treasure-updating

   关注Oldpan博客微信公众号,你最需要的及时推送给你。