2018 年 深度学习框架 盘点 比较 推荐分分快三计

作者:编程技术

出人意料的是,TensorFlow框架的最大竞争对手竟然似乎是PyTorch,社区中不断增长对PyTorch框架的研究兴趣,比如在最近的Kaggle竞赛中,用户经常选择使用PyTorch框架作为其部分解决方案,同时也在最新的研究论文中被使用。在谷歌公司2017年10月发布的最新TensorFlow版本中,引入了一个“运行后定义”的界面。谷歌公司希望这次版本的发布能够赢回那些喜欢PyTorch及其动态图的用户。

一、推荐使用

六、Deeplearning4j 。 顾名思义,Deeplearning4j是”for Java”的深度学习框架,也是首个商用级别的深度学习开源库。Deeplearning4j由创业公司Skymind于2014年6月发布,使用 Deeplearning4j的不乏埃森哲、雪弗兰、博斯咨询和IBM等明星企业。

在过去的两年多时间里,各大公司或研究机构推出自己的深度学习框架,比如Caffe、TensorFlow等,并且关于深度学习相关的框架也在随着时间不断地发生变化。Theano是第一个被广泛使用的深度学习框架,该框架是由深度学习领域中的大牛Yoshua Bengio牵头、MILA创建。然而,在今年的九月份,MILA宣布在2018年更新完最后一版Theano后,将不再继续开发该框架。这一消息来得并不是很出人意外。在过去的几年里,一些不同的开源Python深度学习框架被引入,这些深度学习框架通常是由一家大的科技公司或者来自于多家公司联合开发。

Theano, Lasagne, 以及 Blocks

二、Theano  2008年诞生于蒙特利尔理工学院,Theano派生出了大量深度学习Python软件包,最著名的包括Blocks  和 Keras 。

分分快三计划 1

分分快三计划 2

虽然设计精良(Keras 就是参考 Torch 设计的),但它基于 Lua 语言,太过小众了。而且 Facebook 已经推出了 Python 版本的 PyTorch 了。

另外一个流行的深度学习框架是MXNet,该框架由微软和亚马逊两大巨头资助。MXNet已经推出有一段时间了,但当提到深度学习框架MXNet时,经常有人会误认为该框架只是针对于R语言的。其实MXNet支持多种语言,不仅包含R语言,还包含其它的语言,比如C 、Python、JavaScript及Go等。MXNet的优势在于其可扩展性及其高性能。

分分快三计划 3

电商欺诈侦测

作者信息

Caffe2

语音搜索

以上这些只是选择了一些应用较为广泛的深度学习框架来介绍,还有一些其它的开源深度学习框架比如Deeplearning4j和Dlib。此外,谷歌的DeepMind于2017年发布的Sonnet(基于TensorFlow运行的一个高层次面向对象的库)。值得一提的其它深度学习框架还有H2o.ai和Spark。

DyNet

曾经是动态计算图的首选框架,特别适用于自然语言处理。但是,现在许多其他的框架,如 MXNet, PyTorch, 以及 DyNet 也支持该特性,所以 Chainer 的这一优势也就不复存在了。

在所有的深度学习框架外,还有些框架接口需要详细介绍。最为人知以及应用最为广泛的应用界面毫无疑问是Keras,Keras是用Python写的一个高层次的深度学习应用程序接口,由谷歌公司的研究员 François Chollet 创建。此外,谷歌公司于2017年宣布Keras已经被选定为TensorFlow的高级API,这也意味着Keras将被包含于下一次发布的TensorFlow版本中。除了TensorFlow外,Keras也能被用在Theano或CNTK中。

分分快三计划 4

DSSTNE

其它的科技巨头也没有坐以待毙,微软公司开发了一款内部深度学习框架CNTK,并与2017年正式推出其第2.0版本并重命名为Microsoft Cognitive Toolkit。同年,Facebook也推出了Caffe2,该框架是众所知周的Caffe框架的继承人。原始的Caffe框架是由伯克利大学视觉和学习中心开发,依然被广泛应用于计算机视觉领域,并且还有一些成熟的模型参数能够在Model Zoo中找到,这些模型参数能够用来迁移学习、初始化部分网络参数。目前所知,Caffe2还没有跟上Caffe的脚步。

CNTK

二、值得一试

分分快三计划 5

分分快三计划 6

一、Caffe。源自加州伯克利分校的Caffe被广泛应用,包括Pinterest这样的web大户。与TensorFlow一样,Caffe也是由C 开发,Caffe也是Google今年早些时候发布的DeepDream项目(可以识别喵星人的人工智能神经网络)的基础。

Indra den Bakker,数据科学家、深度学习导师。

TensorFlow

BigDL

Keras 的强大在于它只需简单地叠加多个层就能够创建一个深度学习模型,当使用Keras时,用户不必在层后面做数学运算。这看起来像是一个理想的快速原型制造机,并且Keras也成为了Kaggle竞赛中的热门工具。

深度学习领域发展迅猛,江湖风起云涌。在此,咪博士为大家细细盘点、比较,各大深度学习框架。也祝大家都能训出好模型,调出好参数。

基于 Javascript 的深度学习框架,可以在浏览器中训练深度神经网络。最重要的用途是帮助学习 Deep Learning

分分快三计划 7

以下是咪博士的观点,供大家参考:

八、ConvNetJS 。这是斯坦福大学博士生Andrej Karpathy开发浏览器插件,基于万能的JavaScript可以在你的游览器中训练神经网络。Karpathy还写了一个ConvNetJS的入门教程,以及一个简洁的浏览器演示项目。

目前存在这么多深度学习框架,一些新手在选择一个深度学习框架时会具有面临一些挑战。坦率地说,即使是经验丰富的研究人员和开发人员都难以跟上最新进展的脚步。为了应对这个问题,微软和Facebook发布开源项目ONNX,该项目旨在为涉及不同编程框架的神经网络创建一种共享的模型表示机制。比如,它允许你建立一个PyTorch模型并使用MXNet框架运行模型。

Neon

三、不推荐

分分快三计划 8

受到 Torch 启发,Keras 提供了简单易用的 API 接口,特别适合初学者入门。其后端采用 TensorFlow, CNTK,以及 Theano。另外,Deeplearning4j 的 Python 也是基于 Keras 实现的。Keras 几乎已经成了 Python 神经网络的接口标准。

亚马逊 (Amazon) 和 微软 (Microsoft) 于 2017 年 10 月联合推出的深度学习 API。Gluon 类似 Keras,提供了简单易用的 API 接口。但和 Keras 不一样的地方是,Gluon 还支持动态计算图(对自然语言处理特别有用)。Gluon 后端目前采用 MXNet,未来还将支持微软的 CNTK。

对于最流行的深度学习课程fast.ai的开发者而言,这次变化来得太晚了,fast.ai于9月份宣布将从Keras和TensorFlow转向PyTorch。fast.ai的创始者及Kaggle的首席科学家Jeremy Howard认为,PyTorch将能够继续保持领先的势头,时间会证明这个观点是否正确。

MXNet

十、Neon 。由创业公司Nervana Systems于今年五月开源,在某些基准测试中,由Python和Sass开发的Neon的测试成绩甚至要优于Caffeine、Torch和谷歌的TensorFlow。

2017年有许多令人兴奋的发展,这类似于深度学习和人工智能领域的高速发展。很难去预测明年会发生一些什么事情,但是我们可能会看到一些框架的合并。虽然,一些大型科技公司肯定希望使用并推广自己开发的技术栈,但很高兴看到由不同科技巨头支持的不同深度学习框架相互推动,加快创新。后续将从速度、内存使用、可移植性和可扩展性等方面详细地比较不同的深度学习框架,敬请期待。

源自卡耐基梅隆大学,支持动态计算图,但是太小众了。

深度学习领域发展迅猛,江湖风起云涌。在此,咪博士为大家细细盘点、比较,各大深度学习框架。也祝大家都能训出好模型,调出好参数。

因此,目前在一方面有高层次的Keras API,能够让你轻易地构建先进的深度学习模型;在另外一方面,有低层次的TensorFlow框架,能够让建模时变得更加灵活,这两个项目都由谷歌公司支持。正如预期的那样,其它公司也不甘人后,微软和亚马逊共同宣布其Gluon API,Gluon是一个高层次的Python深度学习界面,目前支持MXNet框架,不久将支持微软的CNTK框架。Gluon是Keras的直接竞争对手,虽然AWS(亚马逊公司旗下云计算服务平台)声称它们强力支持所有的深度学习框架,但是AWS当然会支持Gluon在AI领域的竞争中获胜。

虽然设计精良(Keras 就是参考 Torch 设计的),但它基于 Lua 语言,太过小众了。而且 Facebook 已经推出了 Python 版本的 PyTorch 了。

四、Brainstorm 。来自瑞士人工智能实验室IDSIA的一个非常发展前景很不错的深度学习软件包,Brainstorm能够处理上百层的超级深度神经网络——所谓的公路网络Highway Networks http://people.idsia.ch/~rupesh/very_deep_learning/index.html。

文章原标题《Battle of the Deep Learning frameworks — Part I: 2017, even more frameworks and interfaces》,作者:Indra den Bakker,译者:海棠,审阅.

Chainer

一、推荐使用

OXXN项目从一开始就支持Caffe2、Microsoft Cognitive Toolkit、MXNet以及PyTorch,但对于其它的开源项目也已增加了一个转化器,比如TensorFlow等。

Paddle

源自卡耐基梅隆大学,支持动态计算图,但是太小众了。

分分快三计划 9

同样是 脸书 (Facebook) 出品,为生产环境设计,提供在各种平台(包括移动设备)的运行时。

受到 Torch 启发,Keras 提供了简单易用的 API 接口,特别适合初学者入门。其后端采用 TensorFlow, CNTK,以及 Theano。另外,Deeplearning4j 的 Python 也是基于 Keras 实现的。Keras 几乎已经成了 Python 神经网络的接口标准。

本文由阿里云云栖社区组织翻译。

BigDL

Chainer

与此同时,谷歌公司开发的TensorFlow似乎成为了最为常用的深度学习框架,一些专家预计,谷歌的TensorFlow将会主导深度学习框架市场很多年。然而,一些其它类型的深度学习框架也逐渐吸引了越来越多的用户,最值得注意的是PyTorch深度学习框架。PyTorch是由Facebook公司于2017年1月份开发的深度学习框架,该框架是用C语言实现、Lua语言进行封装,并用Python语言完成GPU加速。除了GPU加速以及高效的内存使用外,PyTorch受到欢迎的其它原因是其动态计算图的使用,这类动态计算图已经被其它不主流的深度学习框架使用,比如Chainer。使用这些动态计算图的优点是图是通过运行起来才定义的,而不像传统的“定义并运行”模式,尤其是输入可变的情况下具有很大的优势,比如像文本一样的非结构化数据等。

Gluon

DeepLearning4j是一个面向生产环境和商业应用的高成熟度深度学习开源库,可与Hadoop和Spark集成,即插即用,方便开发者在APP中快速集成深度学习功能,可应用于以下深度学习领域:

Yoshua Bengio 于 2017 年 09 月宣布不再维护 Theano,所以这个项目事实上已经宣告死亡了。其他基于 Theano 的库,如 Lasagne 和 Blocks,也可以散了。

MXNet

Torch

参考

曾是亚马逊的深度学习引擎,但是很小众,而且现在亚马逊又选择了 MXNet,所以 DSSTNE 的前途就更渺茫了。

五、Chainer 。来自一个日本的深度学习创业公司Preferred Networks,今年6月发布的一个Python框架。Chainer的设计基于define by run原则,也就是说,该网络在运行中动态定义,而不是在启动时定义,这里有Chainer的详细文档。

Caffe2 已经正式发布了,彻底取代 Caffe 只是时间问题罢了。

已被 亚马逊 (Amazon) 选为 AWS 上的深度学习框架,支持动态图计算。MXNet 有许多中国开发者,因而有非常良好的中文文档支持。Gluon 接口使得 MXNet 像 Keras 一样简单易用。

微软出品,授权协议有一些特别,而且似乎也没有什么特别亮眼的地方。

 

分分快三计划 10

Caffe

下面是详细的比较和说明:

Torch

亚马逊 (Amazon) 和 微软 (Microsoft) 于 2017 年 10 月联合推出的深度学习 API。Gluon 类似 Keras,提供了简单易用的 API 接口。但和 Keras 不一样的地方是,Gluon 还支持动态计算图(对自然语言处理特别有用)。Gluon 后端目前采用 MXNet,未来还将支持微软的 CNTK。

Neon

DSSTNE

Paddle

三、不推荐

垃圾信息过滤(异常侦测)

分分快三计划 11

出处:

谷歌 (Google) 大厂出品,追随者众多。相比其他框架,TensorFlow 速度较慢,但它提供的 TensorBoard 可视化工具还是很不错的。

微软出品,授权协议有一些特别,而且似乎也没有什么特别亮眼的地方。

  • 如果你是初学者,那么推荐选择 Keras 或 Gluon 这样简单易用的接口入门。至于是 Keras 还是 Gluon 就不必太纠结了,因为二者都很容易上手,完全可以都学一下。如果非要分个先后的话,可以先试试 Gluon 毕竟开发者是中国人,有官方出品的中文教程带你入门。
  • 学完 Keras 或 Gluon “前端”框架之后,再选择一个“后端”框架深入学习,TensorFlow (Keras 后端) 或 MXNet (Gluon 后端) 是咪博士推荐的 2 个后端框架。TensorFlow 谷歌 (Google) 出品,MXNet 有 亚马逊 (Amazon) 支持,它们都是非常优秀的深度学习框架。至于是 TensorFlow 还是 MXNet,那就得看你的需求了。TensorFlow 受众更广,但是性能较差,而且不支持动态计算图;MXNet 目前还比较小众,但性能较好,而且支持动态计算图,十分方便搞自然语言处理 (NLP) 的朋友。
  • 学习完后端框架之后,你就可以非常灵活地定制自己的神经网络,自由地在深度学习的世界里翱翔了。这里候,如果你有兴趣(或需要),可以试试其他的一些框架,如 PyTorch (灵活多变,适合研究), Caffe2 (性能优化,手机也能跑), Deeplearning4j (Java 首选,整合 Hadoop, Spark), 以及 ConvNetJS (Js 开发,浏览器上玩深度学习)。
  • 其他一些深度学习框架,诸如 Theano (Lasagne, 以及 Blocks), Torch, Caffe, CNTK, Chainer, Paddle, DSSTNE, DyNet, BigDL, Neon 等,由于众多原因,咪博士就不给大家推荐了。

Keras

PyTorch

PyTorch

分分快三计划 12

Caffe2 已经正式发布了,彻底取代 Caffe 只是时间问题罢了。

基于 Javascript 的深度学习框架,可以在浏览器中训练深度神经网络。最重要的用途是帮助学习 Deep Learning

Deeplearning4j

据说速度很快,但太过小众,而且发展还不完善,许多特性还不支持。

九、MXNet 。出自CXXNet、Minerva、Purine等项目的开发者之手,主要用C 编写。MXNet强调提高内存使用的效率,甚至能在智能手机上运行诸如图像识别等任务。

分分快三计划 13

百度的深度学习框架,受众太小。

百度的深度学习框架,受众太小。

Intel 基于 spark 的深度学习库,但只能运行在 Intel 芯片之上。

背后金主是 脸书 (Facebook) ,同样支持动态计算图,提供很好的灵活性,适合研究。

语音转文字(Speech to text)

Keras

同样是 脸书 (Facebook) 出品,为生产环境设计,提供在各种平台(包括移动设备)的运行时。

与其他(大多数)基于 Python 的深度学习框架不同,Deeplearning4j 基于 Java 开发,与 Hadoop, Spark 生态结合得很好。尤其令人称道的是其优秀的文档,官司方文档直接就有中文版本。另外,虽然是面向 Java 的框架,Deeplearning4j 也提供了 Python 的接口(基于 Keras 实现)

下面是详细的比较和说明:

二、值得一试

 

参考

人脸/图像识别

已被 亚马逊 (Amazon) 选为 AWS 上的深度学习框架,支持动态图计算。MXNet 有许多中国开发者,因而有非常良好的中文文档支持。Gluon 接口使得 MXNet 像 Keras 一样简单易用。

背后金主是 脸书 (Facebook) ,同样支持动态计算图,提供很好的灵活性,适合研究。

  1. http://www.ipaomi.com/2017/11/06/2018-年-深度学习框架-盘点-比较-推荐/
  1. http://www.ipaomi.com/2017/11/06/2018-年-深度学习框架-盘点-比较-推荐/

曾经是动态计算图的首选框架,特别适用于自然语言处理。但是,现在许多其他的框架,如 MXNet, PyTorch, 以及 DyNet 也支持该特性,所以 Chainer 的这一优势也就不复存在了。

以下是咪博士的观点,供大家参考:

Deeplearning4j

谷歌 (Google) 大厂出品,追随者众多。相比其他框架,TensorFlow 速度较慢,但它提供的 TensorBoard 可视化工具还是很不错的。

Caffe

对于希望在应用中整合深度学习功能的开发者来说,GitHub上其实还有很多不错的开源项目值得关注

ConvNetJS

出处:

Intel 基于 spark 的深度学习库,但只能运行在 Intel 芯片之上。

================================================================================

Yoshua Bengio 于 2017 年 09 月宣布不再维护 Theano,所以这个项目事实上已经宣告死亡了。其他基于 Theano 的库,如 Lasagne 和 Blocks,也可以散了。

CNTK

三、Torch Torch诞生已经有十年之久,但是真正起势得益于去年Facebook开源了大量Torch的深度学习模块和扩展。Torch另外一个特殊之处是采用了不怎么流行的编程语言Lua(该语言曾被用来开发视频游戏)。

除了以上三个比较成熟知名的项目,还有很多有特色的深度学习开源框架也值得关注:

据说速度很快,但太过小众,而且发展还不完善,许多特性还不支持。

Theano, Lasagne, 以及 Blocks

  • 如果你是初学者,那么推荐选择 Keras 或 Gluon 这样简单易用的接口入门。至于是 Keras 还是 Gluon 就不必太纠结了,因为二者都很容易上手,完全可以都学一下。如果非要分个先后的话,可以先试试 Gluon 毕竟开发者是中国人,有官方出品的中文教程带你入门。
  • 学完 Keras 或 Gluon “前端”框架之后,再选择一个“后端”框架深入学习,TensorFlow (Keras 后端) 或 MXNet (Gluon 后端) 是咪博士推荐的 2 个后端框架。TensorFlow 谷歌 (Google) 出品,MXNet 有 亚马逊 (Amazon) 支持,它们都是非常优秀的深度学习框架。至于是 TensorFlow 还是 MXNet,那就得看你的需求了。TensorFlow 受众更广,但是性能较差,而且不支持动态计算图;MXNet 目前还比较小众,但性能较好,而且支持动态计算图,十分方便搞自然语言处理 (NLP) 的朋友。
  • 学习完后端框架之后,你就可以非常灵活地定制自己的神经网络,自由地在深度学习的世界里翱翔了。这里候,如果你有兴趣(或需要),可以试试其他的一些框架,如 PyTorch (灵活多变,适合研究), Caffe2 (性能优化,手机也能跑), Deeplearning4j (Java 首选,整合 Hadoop, Spark), 以及 ConvNetJS (Js 开发,浏览器上玩深度学习)。
  • 其他一些深度学习框架,诸如 Theano (Lasagne, 以及 Blocks), Torch, Caffe, CNTK, Chainer, Paddle, DSSTNE, DyNet, BigDL, Neon 等,由于众多原因,咪博士就不给大家推荐了。

曾是亚马逊的深度学习引擎,但是很小众,而且现在亚马逊又选择了 MXNet,所以 DSSTNE 的前途就更渺茫了。

TensorFlow

与其他(大多数)基于 Python 的深度学习框架不同,Deeplearning4j 基于 Java 开发,与 Hadoop, Spark 生态结合得很好。尤其令人称道的是其优秀的文档,官司方文档直接就有中文版本。另外,虽然是面向 Java 的框架,Deeplearning4j 也提供了 Python 的接口(基于 Keras 实现)

七、Marvin 。是普林斯顿大学视觉工作组用于将Caffe模型转化成语Marvin兼容的模式。

DyNet

ConvNetJS

Gluon

Caffe2

本文由分分快三计划发布,转载请注明来源

关键词: 分分快三计划 其他分类 框架 人工智能 之争