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

作者: 大数据资讯平台 2019-03-10 22:21:47

 很多神经网络框架已开源多年,支持机器学习和人工智能的专有解决方案也有很多。多年以来,开发人员在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具有出色的可扩展性,例如GPU并行计算,存储映像,高速开发和可移植性。另外,MXNet可以和Apache hadoop YARN结合,YARN是一个通用分布式应用管理框架,这一特性使得MXNet成为TensorFlow的竞争者。

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

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

Torch

Torch由Facebook的Royan Collobert、Soumith Chintala、曾任于Twitter现任于Nvidia的Clement Farabet和Google Deep Mind 的Koray Kavukcuoglu共同开发。其主要贡献者是Facebook、Twitter和Nvidia。 Torch遵守BSD 3 clause 开源协议。然而,Facebook近期宣布将转向Caffe2作为其首选深度学习框架因为它支持移动设备开发。

Torch由Lua语言实现,Lua是一种小众语言,因此若你不熟悉这门语言,会影响到整个工作的效率。

Torch缺少像TensorFlow、MXNet on YARN和Deeplearning4J那样的的分布式支持,缺少多种语言接口同样限制了它的受众。

DeepLearning4J

DeepLearning4J(DL4J)是基于Apache 2.0协议的分布式开源神经网络类库,它由Java和Scala实现。DL4J是SkyMind的Adam Gibson开发的,它是商品级深度学习网络,可以和Hadoop、Spark结合构建多用户多线程服务。DL4J是仅有使用Map-Reduce训练网络而使用其他类库进行大规模矩阵操作的框架。在此我向大家推荐一个大数据技术交流圈: 658558542 突破技术瓶颈,提升思维能力 。

DL4J拥有内建的GPU支持,这一重要特性能够支持YARN上的训练过程。DL4J拥有丰富的深度神经网络架构支持,包括RBM,DBN,CNN,RNN,RNTN和LSTM。DL4J还支持一个向量计算库——Canova。

由于是由Java实现,DL4J先天比Python块,它使用多GPU执行图像识别任务和Caffe一样快。该框架可以出色完成图像识别,欺诈检测和自然语言处理任务。

Theano

Theano主要由蒙特利尔大学学习算法研究所(MILA)创立。Yoshua Bengio是Theano的开创者,同时领导这个实验室,该实验室在深度学习研究领域做出巨大的贡献,培养出约100名相关学生和从业者。Theano支持高效机器学习算法的快速开发,遵守BSD开源协议。

Theano不像TensorFlow那样优雅,但它提供了支持循环控制(被称为scan)的API,可以轻松实现RNN。

Theano提供多种支持手写字识别、图像分类(包括医学图像)的卷积模型。Theano还提供三维卷积和池化用于视频分类。在语言方面,Theano能胜任例如理解、翻译和生成等自然语言处理任务。Theano还支持生成对抗网络(GAN),GAN即是由MILA的一位学生提出的。

Theano支持多GPU并行计算并且自带分布式框架。Theano只支持一种开发语言,比TensorFlow速度快很多,是一种学术研究的有力工具。然而,其不支持移动平台以及没有多种语言接口的缺陷限制了它在企业的广泛应用。

开源与专利软件之争

随着深度学习逐渐成熟,可以预知到我们将见证TensorFlow,Caffe2和MXNet的竞赛。同时,软件供应商也在提供先进的AI产品使你从数据中获取更多价值。问题是:你会购买带有专利的AI产品还是使用开源框架。如果使用开源框架,你将会面临哪种框架最适合你的问题的选择困难。而选择专利软件,你又将怎样制定退出策略?任何一种选择都需要长远考虑。

框架 AI 开发
上一篇:人工智能帮助快速修复道路上的坑洼 下一篇:对比复现34个预训练模型,PyTorch和Keras你选谁?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

谷歌前董事长:人工智能无法自己开创市场

未来不是由机器支配,未来由拥有无限想象力的人支配。

佚名 ·  16h前
人工智能取得重大突破,意识识别已经实现

这只是一个开始,但是却非常令人兴奋:将大脑活动转化为文本的系统。对于那些无法说话的人,例如患有锁定综合征的人,这将改变生活。

秦枫时尚范 ·  23h前
大开眼界!AI在医疗和汽车行业的11个有趣应用

尽管AI已经极大地影响了很多行业和公司,但是我们仍然期望AI能在各个方面带来更彻底的改变,并于2020年在更多领域里占据主流地位。本文主要关注AI对以下两个快速发展的行业的影响:医疗行业和汽车行业。

读芯术 ·  1天前
特征工程是啥东东?为何需要实现自动化?

如今人工智能(AI)变得越来越普遍和必要。从防止欺诈、实时异常检测到预测客户流失,企业客户每天都在寻找机器学习(ML)的新应用。ML的底层是什么?这项技术如何进行预测?使AI发挥神奇功效的秘诀又是什么?

布加迪 ·  4天前
AI如何改变人类社会的各种业务模式?

在过去的20年中,一些愤世嫉俗的人一直担心,人工智能(AI)的发展会破坏企业结构,导致大量失业和财富不平等加剧。下一个十年将是AI的十年。我们期望看到什么变化?答案是基本流程的转变和减少。

CDA数据分析师 ·  4天前
应用程序管理中的AI/ML用例

基于人工智能的操作 (AIOps) 是人工智能和传统 AM/IM 操作的融合。与所有其他领域一样,AI 将对运营管理产生重大影响。

佚名 ·  4天前
破解机器学习的误区——常见机器学习神话究竟从何而来?

Forrester Research最近发布了一份名为“ 粉碎机器学习的七个神话”的报告。在其中,作者警告说:“不幸的是,一些对机器学习项目做出重要决策的企业领导者,普遍存在机器学习的误解。”

CDA数据分析师 ·  2020-04-01 14:24:06
我们对人工智能的误解有多深

人工智能技术具有正、反两方面的作用,在造福于人类的同时,也存在各种风险。理论上可能存在以下四种风险。

陈小平 ·  2020-03-31 20:00:59
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载