专栏首页有三AI【杂谈】为什么Pytorch这么好用我还苦口婆心推荐初学者也学习一下caffe?

【杂谈】为什么Pytorch这么好用我还苦口婆心推荐初学者也学习一下caffe?

目前新手开始学习深度学习框架的时候大多是从Pytorch开始的,Pytorch是个好东西,笔者也很喜欢用。但是粉丝们也知道我们公众号讲了许多Caffe的内容,包括我们的季划中的一些简单任务也会包含caffe实现,那为什么一个已经不维护了的框架,我们还要支持甚至鼓励学习呢?

Caffe是稳定而优秀的

深度学习开源框架众多,Caffe的基础代码都是C++,Caffe在做计算机视觉任务中的图像分类,分割,检测等任务时,有非常成熟的网络层,也很容易拓展。使用流程简单,可视化清晰。

最早一批入行深度学习的同学应该都用过Caffe,自己写过网络层,甚至推导过反向传播的公式,各家公司在很长一段时间内都是将Caffe的核心代码移植到手机上,并且至今仍然被大量使用,你去面试,保不准就会被问到。

C++,CUDA绕不过

Pytorch等框架好用,主要在于API丰富,框架使用流程和Python语法灵活,非常适合做模型训练,写论文做科研。但是真正在工作岗位做算法工作并不会停留在训练模型,还需要在移动端做部署,写SDK,自定义算子,这些都需要优秀的C++编程能力,甚至是CUDA编程能力。

笔者当年读书的时候做项目都是Matlab和C++,毕业的时候笔试面试全是C++,如今难道会不考察了?

事实上很多同学根本不具备合格的编程能力,甚至C++没接触过或者仅限于基础语法。那么,在看完书籍之后如何去进行实践呢?如何去掌握优秀的C++编码能力?写几道编程题就够了吗?

不够,首先要从阅读优秀的源代码开始,然后在业务中锻炼。纵观这么多的开源项目,在深度学习领域里,Caffe无疑是非常优秀的,最适合拿来学习C++,可以从以下几个方向来做。

(1) 阅读学习Caffe的源代码和设计模式。

Caffe的所有源代码都是C++/CUDA写的,使用工厂设计模式,代码结构清晰,可读性和拓展性强,效率高。

(2) 自己添加新的网络层,包括数据层,损失层等。

把C++类的设计,各种数据结构和标准库熟悉并且用起来,把CUDA代码也写一写,这些都是以后去公司从事模型部署和优化框架工作所必须准备好的技能。

(3) 学会用Caffe部署和分析模型。

学会用Caffe去分析每一个网络层的计算量和计算时间,找到性能瓶颈。学会用它把模型进行封装和加密,在嵌入式平台中使用。

当然了,Pytorch和Tensorflow等一样有C++的内容,笔者只是想说,从Caffe开始,可能更好。

本文分享自微信公众号 - 有三AI(yanyousan_ai),作者:言有三

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【杂谈】工程能力差,C++水平菜?CUDA没写过?我推荐玩下Caffe

    深度学习开源框架众多,基于C++的训练框架唯有Caffe一个,尽管Caffe在做一些比较新的任务时成本极高,但它依旧有它存在的价值,今天在这里给出几个推荐理由。

    用户1508658
  • 【杂谈】什么是我心目中深度学习算法工程师的标准

    有三AI平台只专心做原创输出很少扯淡也不蹭热点,不过最近询问的朋友多了,不得不统一写篇文章来回答一下这个大家都很关心的问题,当然,这仅仅是个人观点。

    用户1508658
  • 【百战GAN】GAN也可以拿来做图像分割,看起来效果还不错?

    大家好,欢迎来到专栏《百战GAN》,在这个专栏里,我们会进行算法的核心思想讲解,代码的详解,模型的训练和测试等内容。

    用户1508658
  • 如何开始我们的 DevOps 转型之旅?

    导言 ? 本次分享是《DevOps Handbook》的第二部分,DevOps 从哪里入手,可以说这一章在全书中是承前启后的一章,主要想要解决的是我们要做什么的...

    DevOps时代
  • 【指令篇】键盘附着指令调整软键盘

    现在开始实现这个指令,新建指令之前添加Keyboard插件,一般我们的项目默认已经装上了的,我们只需安装相应的ionic-native子模块:

    IT晴天
  • 如何将简单的Shell转换成为完全交互式的TTY

    作为一名渗透测试人员,最令人激动的莫过于netcat为我们反弹回了一个shell连接,以及通过id命令查看到一个令人满意的用户权限。但凡事总有意外,由于我们获取...

    FB客服
  • 分享:自学编程的方法

    不管是在某些论坛上,或者在微博上,都看到过很多人提问如何自学编程。心声共鸣啊,我就是从完全自学开启编程之路的。 要说到自学的过程、要多长时间才算学会、有什么具体...

    小小科
  • 年终盘点 | 红帽KVM虚拟化大讲堂 | 视频讲解+实验展示+实施手册

    针对很多客户关注的KVM虚拟化方案,笔者应邀,针对金融行业一些关注KVM虚拟化方案的客户进行了讲解。为了使由于各种原因没能参加课堂的朋友也能了解到讲解的内容,笔...

    魏新宇
  • PyTorch的元学习库:Torchmeta

    Torchmeta是扩展和数据加载器的集合,用于在PyTorch中进行少量学习和元学习。Torchmeta在2019年全球PyTorch夏季黑客马拉松上获得了最...

    代码医生工作室
  • Redis技术知识总结之六——Redis持久化机制

    Redis 有两种持久化机制:快照 (RDB) 和 AOF 日志。其中快照是一次性全量备份,AOF 是增量备份。

    剑影啸清寒

扫码关注云+社区

领取腾讯云代金券