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/48102. TensorFlow API攻略
/course/detail/44953.TensorFlow入门基本教程/course/detail/4369
4. C++标准模板库从入门到精通
/course/detail/3324
5.跟老菜鸟学C++
/course/detail/2901
6. 跟老菜鸟学python
/course/detail/25927. 在VC里学会使用tinyxml库
/course/detail/25908. 在Windows下SVN的版本管理与实战
/course/detail/2579
9.Visual Studio 开发C++程序的基本使用
/course/detail/2570
10.在VC里使用protobuf协议
/course/detail/258211.在VC里学会使用MySQL数据库
/course/detail/2672