加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

该如何选择最适合你的开源框架?

发布时间:2019-03-17 18:25:02 所属栏目:经验 来源:大数据资讯平台
导读:很多神经网络框架已开源多年,支持机器学习和人工智能的专有解决方案也有很多。多年以来,开发人员在Github上发布了一系列的可以支持图像、手写字、视频、语音识别、自然语言处理、物体检测的机器学习框架,但并没有一种框架可以完美地解决你所有的需求。
副标题[/!--empirenews.page--]

很多神经网络框架已开源多年,支持机器学习和人工智能的专有解决方案也有很多。多年以来,开发人员在Github上发布了一系列的可以支持图像、手写字、视频、语音识别、自然语言处理、物体检测的机器学习框架,但并没有一种框架可以完美地解决你所有的需求。那么该如何选择最适合你的开源框架呢?希望下面带有描述的图表以及分析可以带给你以启发,以此来选择最适合你的业务需求的框架。下图总结了绝大多数Github上的开源深度学习框架项目,根据项目在Github的Star数量来评级。

 

该如何选择最适合你的开源框架?

TensorFlow

TensorFlow框架的前身是Google的DistBelief V2,是谷歌大脑项目的深度网络工具库,一些人认为TensorFlow是借鉴Theano重构的。

Tensorflow一经开源,马上引起了大量开发者的跟进。Tensorflow广泛支持包括图像、手写字、语音识别、预测和自然语言处理等大量功能。TensorFlow遵循Apache 2.0开源协议。

TensorFLow提供这些工具:

TensorBroad是一个设计优良的可视化网络构建和展示工具;

TensorFlow Serving通过保持相同的服务器架构和API,可以方便地配置新算法和环境。TensorFlow Serving 还提供开箱即用的模型,并且可以轻松扩展以支持其他的模型和数据。

TensorFlow编程接口包括Python和C++,Java,Go,R和Haskell语言的接口也在alpha版中支持。另外,TensorFlow还支持谷歌和亚马逊的云环境。

TensorFlow的0.12版本支持Windows 7, 8,, Server 2016系统。由于采用C++ Eigen库,TensorFlow类库可以在ARM架构平台上编译和优化。这意味着你可以不需要额外实现模型解码器或者Python解释器就可以在多种服务器和移动设备上部署训练好的模型。

TensorFlow提供细致的网络层使用户可以构建新的复杂的层结构而不需要自己从底层实现它们。子图允许用户查看和恢复图的任意边的数据。这对复杂计算的Debug非常有用。

分布式TensorFlow在0.8版本推出,提供了并行计算支持,可以让模型的不同 部分在不同设备上并行训练。

TensorFlow在斯坦福大学,伯克利学院,多伦多大学和Udacity(2016年3月成立的在线学校)均有教学。

TensorFlow的缺点有:

每个计算流必须构建成图,没有符号循环,这样使得一些计算变得困难;

没有三维卷积,因此无法做视频识别;

即便已经比原有版本(0.5)快了58倍,但执行性能仍然不及它的竞争者。

Caffe

Caffe是贾扬清的作品,目前,贾扬清是Facebook AI平台的Lead。始于2013年末,Caffe可能是第一个主流的工业级的深度学习工具包。Caffe具有卓越的卷积模型,是计算机视觉领域最受欢迎的工具之一,且2014年ImageNet 大赛的获奖作品使用的就是Caffe框架。Caffe遵循BSD 2-Clasuse 协议。在此我向大家推荐一个大数据技术交流圈: 658558542 突破技术瓶颈,提升思维能力 。

Caffe的高速使得它非常适合于科研和商业领域。利用一个NVIDIA K40 GPU,Caffe可以每天处理60M张图片,即推断1毫秒一张,训练4毫秒一张。使用最新的版本,甚至可以更快。

Caffe底层是用C++实现的,可以在各种设备上编译。Caffe是跨平台的并且提供Windows接口,它提供C++,Python和Matlab语言接口。Caffe拥有着庞大的用户社区,并且有大量深度网络模型在社区上贡献,被称为“Model Zoo”。其中,AlexNet和GoogleNet是最著名的两个。

Caffe是视觉识别的流行框架,然而Caffe不提供像TensorFlow,CNTK或Theano一样细粒度的层结构。你必须编写底层代码来构建复杂的层结构。由于它的固有架构,Caffe对循环网络和语言模型的支持不力。

Caffe2

贾扬清和他的团队目前在Facebook致力于Caffe2的研发。2017年4月18号,Facebook基于BSD协议开源了Caffe2。Caffe2聚焦于模块化,在移动设备和大规模部署均表现出色。和TensorFlow一样,Caffe2页使用C++ Eigen以支持ARM架构。

Caffe的模型可以通过脚本轻松转化成Caffe2模型。Caffe在设计上的倾向使得它特别适合视觉相关的问题,Caffe2沿袭了它对视觉问题的强大支持,同时还加入了RNN和LSTM以更好地支持自然语言处理,手写字识别和时间序列预测。

可以预见在不远的将来Caffe2将会替代Caffe在深度学习社区的地位。

Microsoft Cognitive Toolkit

Microsoft Cognitive Toolkit(CNTK)设计的初衷是用于语音识别领域。CNTK支持RNN(循环神经网络)和CNN(卷积神经网络),因此他有能力胜任图像、手写字和语音识别问题。CNTK支持64位Linux和Windows系统,提供Python和C++语言接口,遵循MIT协议。

CNTK与TensorFlow和Theano有着类似的设计理念——把网络定义成向量操作的语义图,向量操作例如矩阵加法、矩阵乘法以及卷积。同时,CNTK也提供细粒度的网络层设计,允许用户使用它们设计新的复杂网络。

和Caffe一样,CNTK底层也是C++实现并具有跨平台CPU/GPU支持。搭载在Azure GPU Lab上,CNTK能发挥出最高的分布式计算性能。目前,CNTK由于不支持ARM架构,限制了其在移动端的应用。

MXNet

MXNet源自于卡内基梅隆大学和华盛顿大学。MXNet是一个极具特色,可编程,可扩展的深度学习框架。MXNet可以混合多种语言的模型和代码,包括Python, C++, R, Scala, Julia, Matlab, JavaScript。2017年1月30号,MXNet被纳为Apache基金会孵化项目。

MXNet支持CNN、RNN、LSTM, 提供对图像,手写字,语音识别,预测和自然语言问题的强大支持。有人认为,MXNet是世界上最好的图像分类器。

MXNet具有出色的可扩展性,例如GPU并行计算,存储映像,高速开发和可移植性。另外,MXNet可以和Apache hadoop YARN结合,YARN是一个通用分布式应用管理框架,这一特性使得MXNet成为TensorFlow的竞争者。

MXNet的一个独特之处是它是少有的几个支持对抗生成网络(GAN)的框架之一。这个模型被用于实验经济学方法中的“纳什均衡”。

另一个特殊之处是,亚马逊的CTO Werner Vogels宣布了对MXNet的支持:“今天,我们宣布MXNet将成为亚马逊的深度学习框架选择。我们将在现有和未来将出现的服务中使用MXNet。”苹果公司的部分传闻也表示该公司将会使用MXNet作为其深度学习框架。

Torch

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读