200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 对你来说 哪一个深度学习网络是最佳选择?(2)

对你来说 哪一个深度学习网络是最佳选择?(2)

时间:2019-09-21 01:24:52

相关推荐

对你来说 哪一个深度学习网络是最佳选择?(2)

Caffe 2

Yangqing和他的Facebook团队正在开发Caffe 2。在4月18日,Facebook采用BSD协议开放了Caffe2。Caffe 2和Caffe不同点在哪里呢? Caffe 2注重点是为了移动平台更容易建模和大规模部署模型。就像TensorFlow一样, Caffe 2开始采用C++可移值库来支持ARM架构的平台。

Caffe的模型通过多功能脚本很方便转换为Caffe 2的模型。Caffe的设计就是为了方便设备视觉的问题,Caffe 2会继续支持这方面的功能,但是添加了新的功能循环神经网络(RNN)和长短期记性(LSTM)神经网络,可以使用来进行自然语言处理、手写识别和时间序列的预测。

期望看到Caffe 2在深度学习的社区里超越Caffe,与它发布所声明的功能一样美好。

Microsoft Cognitive Toolkit

Microsoft Cognitive Toolkit (CNTK)是一个最初为了实现语音识别的深度神经网络。CNTK支持RNN和CNN类型的神经网络,这些模型很方便处理图片处理、手写识别和语音识别。CNTK支持64-bit Linux和Windows操作系统,可以使用Python 或C++来开发,它是采用MIT协议发布。

CNTK与TensorFlow 和Theano采用同样的向量操作图方式来构造神经网络,比如矩阵加/乘法或卷积运算。因此,像TensorFlow 和Theano一样, CNTK 也允许对神经网络的层进行细节的调整。构造神经网络元也可以通过高级语言进行,而不像Caffe使用低级语言来编写。

像Caffe一样, CNTK也是基于C++开发,同时支持CPU/GPU多平台。CNTK 在Azure GPU平台上,提供了最优化的分布计算性能。当前CNTK缺少对ARM平台的支持,因此不能使用在移动设备上。

MXNet

MXNet(pronounced “mix-net”)起源于Carnegie Mellon University 和the University of Washington。MXNet是一个功能齐全,可编程和可伸缩的神经网络平台,同时也支持最先进的学习模式。MXNet提供了一种混合编程模型(imperative and declarative),同时支持多种开发语言,包括Python, C++, R, Scala, Julia, Matlab 和JavaScript。在1月,MXNet已经接受了Apache孵化器计划。

MXNet支持的神经网络模型:卷积神经网络(CNN)和循环神经网络(RNN)、长短期记性神经网络(LTSM) 。这个平台提供优秀的图片处理、手写识别和语音识别、预测和自然语言处理。因而有人说MXNet是世界上最好的图片分类平台。

MXNet 拥有很强的灵活性,比如GPU平行计算,内存镜像,快速开发能力和可移值性。另外,MXNet集成了Apache的Hadoop YARN,它是一个通用的、分布式、应用程序管理框架,从而让MXNet成为TensorFlow有力的竞争者。

MXNet与其它神经网络平台的最大区别是支持生成对抗神经网络(Generative Adversarial Network,GAN)模型。这种模型特别适用Nash equilibrium来实现经济学模型。

另外一方面,Amazon CTO Werner Vogels宣布支持MXNet: “Today, we are announcing that MXNet will be our deep learning framework of choice.” Vogel 就是说“we plan to use it broadly in existing and upcoming new services.” 在Apple公司也通过收购Graphlab/Dato/Turi来支持这个神经网络平台。

Torch

Torch是由Facebook公司的Ronan Collobert和Soumith Chintala、Nvidia公司的Clement Farabet、Google Deep Mind的Koray Kavukcuoglu创建的神经网络平台。Torch目前主要由Facebook, Twitter 和Nvidia来共同发布。Torch采用BSD 3协议发布。不过,Facebook宣布将改为使用Caffe 2平台,以便它可以部署到移动平台。

Torch采用Lua脚本来编程神经网络的应用。Lua并不是一个主流的编程语言,需要花费比较多精力去学习它,才可以使用。

Torch缺少像TensorFlow 或MXNet的YARN或Deeplearning4J的分布应用框架。也缺少广泛主流语言的编程接口,从而限制了它的应用开发人员。

Deeplearning4J

Deeplearning4J (DL4J)是采用Apache 2.0协议发布的开源深度学习平台,是采用Java和Scala编写的神经网络库。DL4J是SkyMind Adam Gibson发明的,是唯一的商业级的深度学习网络,结合Hadoop和Spark,多主线程的功能。DL4J 也是一个唯一采用Map-Reduce方式训练的神经网络平台。

DL4J平台支持内置GPU计算,与YARN实现的同样的功能, Hadoop分布式计算,应用程序管理框架。DL4J拥有丰富的深度神经网络架构:RBM, DBN, Convolutional Neural Networks (CNN), Recurrent Neural Networks (RNN), RNTN, 和Long Short-Term Memory (LTSM) network。DL4J也支持采用Canova库来进行矢量计算。

DL4J采用Java来实现,因此它Python语言实现稍快。它在多GPU下图片识别的速度可以与Caffe一样快。该框架提供了良好的图像识别,欺诈检测和自然语言处理能力。

Theano

Theano由University of Montreal Institute为了学习算法而开发的。由Yoshua Bengio创建的实验室是一个贡献很大的深度学习研究的实验室,拥有约100名学生和教师。Theano提供快速高效地开发深度学习算法,采用BSD协议发布。

Theano缺少像TensorFlow的优雅,但它提供了循环控制的API,叫做scan, 从而让它很方便和高效地构造循环神经络(RNN)。

Theano支持多种类型卷积神经网络来进行手写识别、图片分类,特别是医学图片处理。Theano使用3-D卷积/池化来对视频进行分类识别。Theano 也提供了自然语言处理,比如理解、翻译和生成。Theano也支持对抗神经网络模型(GAN),它是被MILA学生发明的,而不是Google公司。

Theano支持多GPU数据并行计算,分布计算模型。Theano只支持一种编程开发语言,是学术研究的一个伟大的工具,跑得比TensorFlow更有效。但是它缺少移动平台的支持,并且缺少其它编程语言的接口,从而减少了在商业上部署和开发。

开源vs. 闭源平台

随着深度学习不断地成熟,在各种平台:TensorFlow, Caffe 2 和MXNet之间竞争已经开始,鹿死谁手还不知道。作为软件开发商会通过高级的AI从你的数据里获取训练模型来选择平台。风险选择:你选择一个闭源的商业AI产品,还是采用一个开源的平台?当采用开源时,你又决定那一个平台最适合你的产品?如果已经使用闭源平台,又怎么样转移到开源平台呢?不过以短期来看,应该选择最适合自己实现目标的平台为好。

1.Unity5.x游戏基础入门

/course/detail/4810

2. TensorFlow API攻略

/course/detail/4495

3.TensorFlow入门基本教程/course/detail/4369

4. C++标准模板库从入门到精通

/course/detail/3324

5.跟老菜鸟学C++

/course/detail/2901

6. 跟老菜鸟学python

/course/detail/2592

7. 在VC里学会使用tinyxml库

/course/detail/2590

8. 在Windows下SVN的版本管理与实战

/course/detail/2579

9.Visual Studio 开发C++程序的基本使用

/course/detail/2570

10.在VC里使用protobuf协议

/course/detail/2582

11.在VC里学会使用MySQL数据库

/course/detail/2672

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。