Amazon亲儿子MXNet与其他框架有哪些不同?| 赠书

640?wx_fmt=gif

 

640?wx_fmt=jpeg

 

为了给我们公众号的粉丝送福利,此文有送书活动,请进来的粉丝们认真阅读此文哦~

目前大部分深度学习框架都已开源,不仅提供了多种多样的接口和不同语言的API,而且拥有详细的文档和活跃的社区,因此设计网络更加灵活和高效。另外,几乎所有的深度学习框架都支持利用GPU训练模型,甚至在单机多卡和分布式训练方面都有很好的支持,因此训练模型的时间也大大缩短了。深度学习框架的这些优点让其在开源之初就大受欢迎,同时大大加速了学术界和工业界对深度学习算法的研究,所以最近几年各领域的算法模型如雨后春笋般不断刷新各种指标。

目前主流的深度学习框架不到10个,而且大部分框架都由大公司的工程师在维护,代码质量非常高,选择一个合适的框架不仅能加快算法的优化产出,还能提高线上部署的效率。当然不同高校实验室或者企业团队所用的深度学习框架都不大一样,不过你不用担心现在所用的框架在以后的工作中用不到,毕竟各框架的设计理念都有许多相似之处,但我建议你至少要深入了解其中一个深度学习框架,多动手写代码,读一读该框架的源码,以求能够灵活使用该框架实现自己的想法,当然,如果你能对开源社区有一定的贡献并一起推动该框架发展那自然是再好不过了。下面我们来从今天的主角开始一一介绍:

 

640?wx_fmt=jpeg

 

MXNet是亚马逊(Amazon)官方维护的深度学习框架。MXNet的前身是cxxnet。2015年年底,cxxnet正式迁移至MXNet,并在2016年年底成为Amazon的官方深度学习框架。MXNet采用的是命令式编程和符号式编程混合的方式,具有省显存、运行速度快等特点,训练效率非常高。2017年下半年推出的Gluon接口使得MXNet在命令式编程上更进一步,网络结构的构建更加灵活,同时混合编程的方式也使得Gluon接口兼顾了高效和灵活。2018年5月,MXNet正式推出了专门为计算机视觉任务打造的深度学习工具库GluonCV,该工具库提供了包括图像分类、目标检测、图像分割等领域的前沿算法复现模型和详细的复现代码,同时还提供了常用的公开数据集、模型的调用接口,既方便学术界研究创新,也能加快工业界落地算法。

 

640?wx_fmt=jpeg

 

PyTorch是Facebook官方维护的深度学习框架之一,是基于原有的Torch框架推出的Python接口。Torch是一种深度学习框架,其主要采用Lua语言,与主流的Python语言相比,学习Lua语言需要一定的成本,因此为了更加便于用户使用,基于Torch开发出了Python接口并不断优化,从而诞生了PyTorch。PyTorch采用的是命令式编程,搭建网络结构和调试代码非常方便,因此其很适合用于学术界研究试错,相信用过PyTorch的同学都会为该框架的灵活性所吸引。PyTorch于2017年年初开源,虽然比其他大部分深度学习框架开源时间要晚,但快速发展的PyTorch目前拥有较为完善的接口和文档,在众多深度学习框架中已经是出类拔萃、深受追捧。

 

640?wx_fmt=jpeg

 

Caffe是Facebook官方维护的深度学习框架之一,是老牌的深度学习框架,相信很多早期入门深度学习的人都用过Caffe,尤其是对安装Caffe时的依赖印象深刻。Caffe非常容易上手,同时开源时间较早,这些都为Caffe框架积累了丰富的预训练模型,使其在工业界和学术界都得到了广泛的应用。2017年4月,Facebook正式推出了Caffe的升级版Caffe2,在Facebook内部Caffe/Caffe2侧重于线上产品部署,PyTorch则侧重于研究试错。2018年4月,Caffe2的代码已经与PyTorch代码合并,目前代码已经迁移至PyTorch的GitHub地址:https://github.com/pytorch,并推出了PyTorch1.0。

 

640?wx_fmt=jpeg

 

TensorFlow是Google官方维护的深度学习框架。TensorFlow自2015年年底开源以来,在GitHub上的火热程度非同一般,也是目前使用最广泛的深度学习框架之一。TensorFlow为用户提供了丰富的接口、完善的社区、可视化工具TensorBord等。尤其是可视化工具TensorBord可以让用户查看和记录模型训练过程中的参数变化情况,从而方便对模型进行调优。经过几年的发展壮大,完善的生态为TensorFlow积累了越来越多的用户,这对于一个深度学习框架而言非常重要。

 

640?wx_fmt=jpeg

 

除了前面提到的几个深度学习框架之外,还有一些深度学习框架也非常受欢迎。Keras,一个基于TensorFlow和Theano且提供简洁的Python接口的深度学习框架,上手非常快,受欢迎程度非常高。Theano,老牌的深度学习框架之一,由蒙特利尔大学的机器学习团队开发,不过Theano的开发者在2017年下半年时宣布将终止Theano的开发和维护。CNTK,微软官方维护的深度学习框架,也是基于符号式编程。PaddlePaddle,百度官方维护的深度学习框架,是国内公司最早开源的深度学习框架。

MXNet的优势

在众多主流的深度学习框架中,很难说哪一个在各方面都占有绝对优势,但是假如你选择MXNet进行深度学习算法的开发和部署,相信你一定能体会到其运行速度快、省显存等优点。另外随着MXNet的不断推广,相关的学习资料也越来越多,社区越来越壮大,这对于MXNet而言是非常利好的。

MXNet从开源起就将命令式编程和符号式编程无缝衔接在一起,比如在设计神经网络结构时采用符号式编程得到计算图,然后根据计算图进行一系列的优化从而提高性能,而在训练模型过程中涉及的逻辑控制操作则可以通过命令式编程的方式实现。因此MXNet在灵活和高效之间取得了非常好的平衡,这使得MXNet不仅适合于学术界研究试错,也适合工业界进行线上部署。事实上,成功很少会有捷径,MXNet虽然是2015年年底开源,但在开源之前其实经历了较长的开发期,属于典型的厚积薄发。

就像任何事物都有两面性一样,几个主流的深度学习框架也各有优缺点。Caffe框架作为最优秀的深度学习框架之一,一直深受广大用户的欢迎,其优点是非常容易上手,积累的用户也很多;缺点是安装比较麻烦,会涉及各种环境依赖,另外要想灵活应用的话对新手而言还是比较困难的,而且该框架本身比较占用显存。TensorFlow是目前应用最为广泛的深度学习框架,TensorFlow的优点在于丰富的接口以及Google的强大技术支持,从开源以来,其积累了非常多的用户,并且随着学术界和工业界的不断推广,TensorFlow的用户群体也在不断壮大。TensorFlow宏观来看就是“大而全”,这种特点带来的问题就是其接口过于丰富,因此对于新人而言入门较难,往往会面临的问题是要实现一个简单的层却不知道该选择什么样的接口。PyTorch作为主流的深度学习框架中的后起之秀,是在原来已有的Torch框架上封装了Python接口并优化而成的,相信很多使用过PyTorch的读者都会被PyTorch的简洁所吸引,这得益于其命令式编程的设计方式,因此非常适合用于搞研究,或者称为快速试错;当然纯命令式编程的方式带来的问题是工业界线上部署的效率问题,所以Facebook内部对PyTorch的定位也是研究首选,而线上部署方面则是首选Caffe/Caffe2。另外由于PyTorch目前还在快速迭代中,所以文档和接口变化较大,新手需要一定的时间来适应。

那么为什么我推荐使用MXNet呢?有以下几个原因:

1)MXNet结合了命令式编程和符号式编程,因此兼顾了灵活和高效,既方便研究试错又适合线上部署。

2)框架比较稳定。MXNet从开源至今已经经历了早期开发时频繁迭代的阶段,目前接口基本上比较稳定,这将大大降低代码维护的成本。

3)MXNet在显存方面的优化做得非常好,可以帮助你节省机器资源,而且在训练相同的模型时,MXNet比大多数的深度学习框架的训练速度要快,这也能节省不少的训练时间。

4)MXNet安装方便,文档清晰,例子丰富,非常方便新人上手学习。

总结起来,对于深度学习框架而言,没有最好的,只有最适合的。如果在高校做研究,那么我会推荐使用MXNet或者PyTorch,这两者非常便于设计网络结构和调试;如果是在工业界需要上线部署模型,那么我会推荐使用MXNet、TensorFlow或Caffe。

以上内容来自《MXNet深度学习实战:计算机视觉算法实现》

 

640?wx_fmt=png

《MXNet深度学习实战:计算机视觉算法实现》

出版时间:2019年6月

一周碎片时间,零基础学习最火的Python

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

640?wx_fmt=png

扫码了解详情


推荐理由:

通过阅读本书,你将学到:

  • MXNet、TensorFlow、Pytorch、Caffe等深度学习框架的差异

  • MXNet框架各主要模块的技术原理和应用实践

  • MXNet在图像分类、目标检测、图像分割中的应用,以及相关算法的训练、模型测试和实现细节

  • 基于动态图构建网络结构的Gluon接口

  • MXNet专门为计算机视觉任务推出的深度学习库GluonCV

  • 从零开始实现深度学习和计算机视觉算法的方法

作者介绍:

魏凯峰

资深AI算法工程师和计算机视觉工程师,在MXNet、Pytorch、深度学习相关算法等方面有深入的研究和丰富的实践经验。

目前就职于网易杭州研究院,从事计算机视觉算法相关的工作,主要研究方向包括目标检测、图像分类、图像对抗算法、模型加速和压缩。

热衷于分享,坚持在Github上分享算法相关的代码,坚持在CSDN上撰写算法相关的博客,累计百余篇,访问量过百万。(博客地址:https://blog.csdn.net/u014380165)

 

640?wx_fmt=png

扫码或者点击阅读原文了解详情


 

福利到!

CSDN联合机械工业出版社华章公司来给我们的粉丝送书啦

参与方式:只要在此文留言,发表你对深度学习框架的看法,工作人员根据留言内容随机抽取5名粉丝赠送此文书籍一本

评选结果将于6月24日公布,工作人员会给您的留言进行回复,告知您是否获奖,请注意微信公号回复信息哦!

想要获取更多福利可进入我们的“CSDN码书福利群”,群里会不定时的给大家赠书书籍、优惠券等,上一期的赠书活动已出炉,下一期的奖品是可擦笔记本,或有书籍推荐或者物流方面信息也可群里咨询~目前群已满100人,需要加群的请扫下方二维码添加微信,拉你入群哦~

640?wx_fmt=png

做码书商店我们是认真的!

 

 

640?wx_fmt=gif

展开阅读全文

没有更多推荐了,返回首页