深度学习框架与前端接口介绍

描述

深度学习正以迅雷不及掩耳之势发展着,近几年各种不同的深度学习框架也如雨后春笋般纷纷出现,在大厂的支持下这些框架在深度学习的舞台上华丽登场各显神通。但时代一直在发展,最早出现的Theano也传出了即将停止更新的消息。

接口

根据GitHub和Stack Overflow上的数据,谷歌的Tensorflow是目前使用最多的框架,很多人在想tf会不会在未来的日子里占领深度学习市场呢?但事实上其他的深度学习框架也在吸引着越来越多的用户参与其中,最值得注意的就是Facebook的PyTorch框架了,在曾经流行的框架上新开发了Python的接口,并可以顺畅的使用GPU的加速能力。

出了高效的内存使用能力和GPU的加速外,PyTorch最吸引人的地方还在于它的动态计算图。动态计算图主要的优势在于可以根据程序运行的需要灵活地构建计算图,而不是像传统的图模型一样需要先定义图在进行计算。这使得输入更为灵活,对于非结构化数据更是如此。

接口

其他的巨头在这一年里也纷纷出手,微软将原来的认知服务工具包进行改进后推出了CNTK深度学习框架,而Facebook同时也推出了新的Caffe2,作为著名框架Caffe的继承和发扬者。

最初的Caffe由伯克利大学的视觉学习中心研发,目前在深度学习界依然拥有足够多的人气。它主要用于计算机视觉,并在Model Zoo中提供了许多性能优异的预训练模型,Caffe2要超过Caffe可能还需要一些努力和积累。

另一个著名的框架就是来自亚马逊的MXNet。MXNet有有着出众的大规模计算性能和分布式计算表现,但它最吸引人的还是来自对于多种语言的支持,包括C++老大哥,麻溜的Python还有统计的R,还包括前端的JavaScript以及Go、Scala、Perl等语言等语言。

出了这些框架外我们还不得不提到Deeplearning4j的java库和Dlib的c++库,还有H20.ai以及Spark对机器学习的投入也值得注意。另外Deepmind发布的Sonnet也十分引人注目。

接口

说完了框架,那么还要来看看前端的接口。毫无疑问使用最广泛的前端接口要是Keras了。Keras是高级深度学习结构,由谷歌的深度学习研究者François Chollet创造,同时在2017年开始兼容Tensorflow作为后端,这意味着之后的TF都会包含Kersa的前端。除了TF它还支持Theano和CNTK等后端框架,同时还可以与流行的机器学习包scikit-learn协作使用。

Keras十分强大,人们可以利用它将简单地神经堆叠起来构建深度学习模型,而无需考虑每一层后面的数学原理。这使得Keras十分适合于构建原型,在Kaggle比赛中十分受欢迎。

有了前端我们就可以利用高级接口简单迅速的创建简单或复杂的模型,但同时也可以利用底层的TF等框架进行更灵活地个性化设置。发现了嘛,这里前后端都是Google的产品。但其他厂商不会这样轻易的放弃,在10月份微软和亚马逊推出了新型的前端Gluon API,作为MXNet和CNTK的高级接口,于是Gluon和Keras开始正式的正面竞争。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分