得益于深度学习框架发展初期各家为更好地推动技术发展而造就的开源生态模式,如今,深度学习框架百花齐放,百家争鸣,快速推动了深度技术在工业界的落地应用。当然,好“药”也得有好“炉”炼,下面我们就介绍下目前主流的深度学习框架的发展状况,各自的特点以及适合的场景等,希望能够帮助大家找到合适的“炉”。
【51CTO.com原创稿件】
1. 写在前面
5G能够说是2019年上半年十分闪烁的那颗“星”了,美方还不惜代价地企图封闭我国的5G技能出海。5G之所以重要,是因为其将和AI技能,大数据技能一道推翻咱们现有的嬉闹形式,让智能化成为实际。
在智能化的国际,5G技能供给高速率(>1 Gbps),低延时(1ms)的根底网络服务,组建物联网(IoT,Internet of Things),大数据技能供给对万物互联发生的海量数据的整合才干,而AI技能则供给整个智能生态的核算与决议计划才干,深度学习技能是十分高效的完结方法,在曩昔10年,已被学术界和工业界重复证实是一剂“灵丹妙药”,依托各种模型、算法能够比人类判断得更精准、更快速。
Figure 1 智能惠顾
技能需求高效的形式来完结运用,深度学习结构便是那个完结“灵药“的“炼丹炉”,能够经过深度学习算法模块化的封装,快速标准模型,输入数据,进行各种模型的练习,调优,测验和布置,为整个智能生态供给猜测,决议计划等中心揣度才干。
2. 深度学习结构排行榜
得益于深度学习结构开展初期各家为更好地推动技能开展而造就的开源生态形式,现在,深度学习结构寝食不安,百家争鸣,快速推动了深度技能在工业界的落地运用。当然,好“药”也得有好“炉”炼,下面咱们就介绍下现在干流的深度学习结构的开展状况,各自的特色以及适宜的场景等,期望能够协助咱们找到适宜的“炉”。
下文将从业界影响、资源投入、开发生态、文档体系、模型全面性、工业实践和开源热度(GitHub)等七个方面评价各结构的开展状况,成果如下图(供参阅)。
Figure 2 十大深度学习结构开展程度(caffe,caffe2分隔核算)
再来看一下GitHub对应的一些数据状况,Pytorch,TensorFlow,PaddlePaddle曩昔两年坚持了较快的开展速度,尤其是Pytorch的星数增加了3倍,获得了颇多重视。而Caffe&Caffe2,Theano,CNTK等,尽管现已中止迭代,但得益于工业的快速开展,GitHub星数仍有必定增加。
Figure 3 十大深度学习结构GitHub数据改变(caffe,caffe2分隔核算)
Figure 4 十大深度学习结构增加率(caffe,caffe2分隔核算)
3. 十大深度学习结构详解
TensorFlow
Google的TensorFlow,能够说是当今十分盛行的深度学习结构。Airbnb,DeepMind,Intel,Nvidia,Twitter以及许多其他出名公司都在运用它。
Google自开源TensorFlow起,投入清楚的人力,物力,财力,逐渐构建了一个AI生态,从根底研讨、AI教育再到运用完结,而这个生态的中心便是TensorFlow。如前所说,深度学习是AIoT惠顾的柱石,毫无疑问,Google仍然走在惠顾转折点的前列。
TensorFlow供给全面的服务,无论是Python,C++,JAVA,Go,乃至是JavaScript,Julia,C#,简直一切开发者都能够从了解的鼓动下手开端深度学习的旅程。TensorFlow构建了活泼的社区,完善的文档体系,大大降低了咱们的学习本钱,不过社区和文档首要以英文为主,中文支撑有待加强。别的,TensorFlow有很直观的核算图可视化呈现。模型能够快速的布置在各种硬件机器上,从高功能的核算机到移动设备,再到更小的更轻量的智能终端。
TensorFlow的缺陷现已被诟病多年,比较Pytorch,Caffe等结构,TensorFlow的核算速度能够说是“牛拉车“。并且经过它构建一个深度学习结构需求更杂乱的代码,还要忍耐重复的屡次构建静态图。
但归纳来说,关于英文阅览和英文沟通毫无妨碍的同学,TensorFlow仍然是深度学习结构的优选计划。
Pytorch
Pytorch是依据用Lua编写的Torch库的Python完结的深度学习库,它由Facebook创立,现在被广泛运用于学术界和工业界,跟着Caffe2项目并入Pytorch, Pytorch开端要挟到TensorFlow在深度学习运用结构范畴的位置。
Pytorch官网的标题语简明地描绘了Pytorch的特色以及即将发力的方向。Pytorch在学术界优势很大,关于用到深度学习模型的文章,除了Google的,其他大部分都是经过Pytorch进行实验的,究其原因,一是Pytorch库满足简略,跟NumPy,SciPy等能够无缝衔接,并且依据tensor的GPU责怪十分给力,二是练习网络迭代的中心-梯度的核算,Autograd架构(借鉴于Chainer),依据Pytorch,咱们能够动态地规划网络,而无需蠢笨地界说静态网络图,才干去进行核算,想要对网络有使命环视,都要从头开端构建静态图。依据简略,灵敏的规划,Pytorch快速成为了学术界的干流深度学习结构。
Pytorch的互谦在于模型布置,因为对其布置难度早有耳闻,我没测验过布置Pytorch的模型,一般是在Pytorch快速的实验新的模型,承认好的作用再去找“现成的”的TensorFlow模型做简略的优化。
不过现在,假如略微深化了解TensorFlow和Pytorch,就会发现他们越来越像,TF加入了动态图架构,Pytorch致力于其在工业界愈加易用。翻开各自的官网,你也会发现文档风格也越发的杂乱。
PaddlePaddle
PaddlePaddle是由百度自主研制的开源深度学习渠道,近期有了中文姓名,飞桨。官网截图也很有意思,清楚人在划桨。飞桨刚发布的时分,并不被看好,感觉更像是Google有,百度也要有的声调,可是近来在做一个关于语义辨认的项目,其他结构支撑中文的模型实在是少的不幸,时刻列传也没有时刻大规模练习,于是就来试试飞桨,雁足传书依据BERT的ERNIE模型取得了较好的作用,布置也不折腾。个人认为能够将模型库中的经典模型套在自己的问题上,作为baseline模型快速实验,然后渐渐调优寻求更好的作用。
从模型库找到适宜自己的模型,依照实践教程一步步进行就行了,进程仍是比较简略的,遇到的问题在GitHub的issues中都有找到,尽管不像TF那么活泼,可是支撑也是很及时的。我是从官网找模型,发现官网又更新了,盗张图过来感触下支撑的模型。
Figure 5 PaddlePaddle模型库(源:百度PaddlePaddle官网)
功能上,飞桨画蛇添足支撑动态图和静态图,能便利地调试模型,便利地布置,十分适宜事务运用的落地完结。飞桨也现已支撑数百个节点的高效并行练习。能够说在曩昔2年的时刻里,深度学习范畴在大规模的落地运用,各家结构也都在快速的开展,可是百度的飞桨看来是这个阶段开展更快的结构,乃至是开展更快的AI开发生态。
现在,以上三个结构能够说开展比较快,并且仍在安稳更新与保护。功能上来说,各结构现已“越长越像”,三个结构仍是会有各自的特色,怎么挑选仍是要依据自己的方针来看。
下面简略介绍一下其他的一些首要结构。
Keras
Keras的呈现大大降低了深度学习运用的门槛,经过Keras的API能够经过数行代码就构建一个网络模型,曾几何时,Keras+Theano,Keras+CNTK的形式深得开发者喜欢。现在Keras整套架构现已封装进了TensorFlow,在TF.keras能够完结Keras的一切工作。
Deeplearning4j
Deeplearning4j,望文生义,它是用JAVA编写的,并且与任何JVM鼓动兼容,如Scala,Clojure或Kotlin,根底核算模块是用C,C++和CUDA开发的,依据此,DL4J对Spark和Hadoop生态有很好的支撑,在多卡GPU上也有很好的功能。比较TF,Pytorch和飞桨,DL4J的文档和社区体系并不是很完善,并且其自身并不支撑Python,而是由高层级的Keras API支撑,上手难度稍大,别的其运用示例也很有限。
Mxnet
Mxnet能够说成名很早,开展一向不温不火,现在在Apache项目下孵化,当下背靠企业的TensorFlow,Pytorch和飞桨都依托广泛的运用场景踏上了AI开展的快车道,而Mxnet短少的或许便是大厂运用场景的落地完结。
Caffe&Caffe2
Caffe 是一个优先考虑表达、速度和模块化来规划的结构,它由贾扬清和伯克利人工智能实验室研讨开发。支撑 C、C++、Python等接口以及命令行接口。它以其速度和可转性以及其在卷积神经网络建模中的适用性而出名。
运用Caffe库的优点是从深度网络存储库"Caffe 模型Zoo"拜访可用网络,这些网络经过预先训练,能够当即运用。Caffe是一个出顶叱咤风云的视觉辨认深度学习网络。可是,Caffe 不支撑精密粒度网络层,给定体系结构,对循环网络和鼓动建模的整体支撑适当差,必须用低级鼓动树立杂乱的层类型,运用门槛很高。
Caffe2是由Facebook安排开发的深度学习模型,尽管运用门槛不像Caffe那样高,但仍然让不那么垂青功能的开发者望而生畏,很快就被并入Pytorch项目。而Caffe自2017年以来都没有再更新了,新的项目现已鲜有其身影,曾名噪一时的结构就此闭幕。
Chainer
Chainer是朴实用Python在NumPy,CuPy等库的根底上开发的,它的立异是网络不再是静态图,而是能够灵敏界说,快速闻风丧胆的一套深度学习架构,画蛇添足能够闻风丧胆于大型体系并坚持较高的功能,后来Pytorch的规划创意便是部分借鉴于Chainer。
Theano
Theano是深度学习结构的开山祖师,它由Yoshua Bengio和蒙特利尔大学的研讨小组于2007年创立,是首先广泛运用的深度学习结构。Theano 是一个 Python 库,速度更快,功能强大,能够高效的进行数值表达和核算,能够说是从NumPy矩阵表达向tensor表达的一次引发,为后来的深度学习结构供给了样板。惋惜的是Theano团队现已中止了该项意图更新,深度学习运用结构的开展进入到了背靠工业界大规模运用的阶段。
CNTK
CNTK是由微软开发的深度学习结构,是一个用于商业级分布式深度学习的开源东西包。它经过定向图将神经网络描绘为一系列核算立刻,支撑DNNs,CNNs以及自由组合的模型。本年,CNTK团队也宣告不再更新项目,让人唏嘘。
总的来说,各家的深度学习结构各有千秋,重要的是找到适宜自己团队的,能够快速匹配团队的技能栈,快速实验以期发挥深度学习技能运用落地的商业价值。
4. 怎么挑选?
那么怎么在很多的结构中做挑选呢?我引荐这3个结构:TensorFlow,Pytorch,飞桨。其他结构不是投入资源有限,便是现已不再保护了。实际上,咱们都应该或多或少地去了解这3个结构,依据自己的实际状况能够快速选型。
假如是刚刚左边深度学习,以学习为意图的开发者,我主张从TensorFlow和飞桨开端上手,至少现在来看,Google和百度是倾全力打造这两个渠道的,他们现已不只是一个深度学习结构了,更是一个AI开发的生态,从根底的视频课程,完善的文档体系到项意图敞开落地供给的是一致的服务。多说一句,百度飞桨的根底文档适当具体,不只有代码完结,数据流进程的教程,画蛇添足也包含了具体的算法原理,这点为那些还不是那么了解相应模型的同学带来极大的便利。关于学有余力的同学,我主张这3个结构都能够去了解下。
假如是出于学术意图,主张从Pytorch开端,究竟学术研讨要紧盯着前沿,看文章,复现文章中模型的作用,选咱们都用的能够节约不必要的时刻本钱,把要点放在优化模型提高模型作用上。
假如是想要开箱即用,想将深度学习技能快速运用到自己的场景中测验,我主张挑选飞桨,飞桨中有清楚的实战事例,套到相应的场景根本就能迭代起来了。并且在NLP范畴,需求对各种鼓动进行预处理,毫无疑问对中文支撑更好的是飞桨,比方ERNIE,其发掘海量的中文数据,对先验语义常识进行建模,增强了语义表达才干,能够作为NLP,NLU运用的根底服务不同的场景。
顺手贴几个招聘网站上的JD,也能够帮咱们清晰一下方向,供参阅。
5. 未来
咱们处在更好的惠顾。
感谢互联网文明,感谢开源文明,让技能能够以指数级的速度开展,咱们更要感谢在惠顾转折点的那些引路人,没有Google、百度等企业竭尽全力地测验将新技能运用于各工业,就没有技能的飞速开展,就没有更夸姣的嬉闹形式的变迁。
AI技能的平民化是智能惠顾开展的催化剂,咱们运用深度学习技能,从原理到结构,再到运用渠道化东西将其落地到一切的场景,这是未来的开展趋势。得益于5G技能的开展,信任在不久的将来,咱们将完结万物互联。深度学习是AIoT惠顾的要害,各渠道已有的实践落地项目给咱们供给了工业落地的完结途径。可谓星星之火,渐成燎原之势,别的,开展我国自己的AI开发生态也相同重要,考虑到近期的“华为事情”,未雨绸缪。
结束,我想说的是,结构、渠道都只是为咱们供给了东西,咱们得清晰方针并找到适宜的场景,推动运用在事务上的落地,完结商业价值才干具有中心竞争力。
6. 参阅
- https://www.techspot.com/article/1582-state-of-5g-wireless/
- https://www.tensorflow.org/
- https://pytorch.org/
- https://www.paddlepaddle.org.cn/
- https://deeplearning4j.org/
- https://chainer.org/
- https://mxnet.incubator.apache.org/
- https://keras.io/
- https://github.com/Theano/Theano
- https://docs.microsoft.com/en-us/cognitive-toolkit/
- https://binaryinformatics.com/pytorch-vs-tensorflow/
- https://www.springboard.com/blog/deep-learning-frameworks/
【51CTO原创稿件,协作站点转载请注明原文作者和出处为51CTO.com】
知优网 » 2019深度学习结构排行榜 (从TOP 10到TOP 3)