这篇文章我想来比较一下Theano和mxnet,Torch(Torch基本没用过,所以只能说一些直观的感觉)。我主要从以下几个方面来计较它们:

1.学习框架的成本,接口设计等易用性方面。

  三个框架的学习成本在我看来是

  Theano>Torch>mxnet

  因为Torch底层语言是lua,一种类似python和js的脚本语言,熟悉python或者js的同学学起来应该挺容易(可我偏偏不会脚本语言),但毕竟lua是一种比较小众的语言,所以对于大多数人来说还是需要花费一定的学习成本,因为我实在是没有太多的接触过,所以我只能凭感觉把它排在第二。对于刚从Theano转到mxnet的我来说,第一各感觉就是编程变的容易了,举一个非常简单的例子,在Theano中,定义一个Symbolic scalar还得先查查文档向量对应什么,矩阵对应什么(简直难受的要命),而mxnet中对应的symbolic variable只有一个方法。下图仅仅是Theano Symbolic scalar类型的一部分,当一个初学者使用时会带来极大的不便。

  我为什么会觉得mxnet最容易学的一个重要原因是:虽然mxnet底层是由c++实现,但它提供了python,lua,R,Go和js等多种语言接口(最近好像还加入了jvm语言scala的接口),这使得使用不同语言的人都可以快速的使用上mxnet而不需要跨过一个语言的鸿沟。这也是为什么我觉得mxnet上手最容易。

2.框架的社区活跃程度,普及性

  首先我们来看看三个框架在github上的star和fork数:

 

  然后是贡献热度图:

  三个框架中,最老牌的要数Theano,框架出现的时间最久,贡献热度也稳定。torch是三个中star数最多的,但是贡献热度确不是很高,mxnet是一个新兴的框架,这个框架的贡献者热情非常高涨,一些新近出现的模型可以找到(今天就有新加上了14年的一个比较新的神经语言模型)。所以,三个框架theano和troch已经比较稳定,而且也有大量的论文实验都是基于着两个框架的,mxnet出现的时间不久,但社区热情很高,一些前沿的算法和模型都有mxnet的实现版本。

3.框架性能和可扩展性

  三个框架中,theano和torch都只支持单机版,mxnet支持分布式,mxnet还强调能可以在多种设备上使用。从这个角度来看,theano和torch更适合于研究来使用,而mxnet是有可能和google的tensorflow一样应用到实际的生产环境中去的。

  

  左右两张图分别比较了mxnet与torch和torch与theano的运行速度,虽然这只是在特点例子下的比较,但还是可以清楚的看到,torch和mxnet结合gpu加速计算的能力高于theano。

  以上就是我对这三个框架的一些比较,纯属个人愚见,每个框架都有自己的好处和不足,真正使用哪个框架完全取决于个人的情况,希望我这点比较能提供一点帮助。

  

mxnet,theano与torch的简单比较的更多相关文章

  1. 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

    http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...

  2. 【神经网络与深度学习】chainer边运行边定义的方法使构建深度学习网络变的灵活简单

    Chainer是一个专门为高效研究和开发深度学习算法而设计的开源框架. 这篇博文会通过一些例子简要地介绍一下Chainer,同时把它与其他一些框架做比较,比如Caffe.Theano.Torch和Te ...

  3. Ubuntu16.04+cuda8.0rc+opencv3.1.0+caffe+Theano+torch7搭建教程

    https://blog.csdn.net/jywowaa/article/details/52263711 学习中用到深度学习的框架,需要搭建caffe.theano和torch框架.经过一个月的不 ...

  4. TensorFlow 简单实例

    TF 手写体识别简单实例: TensorFlow很适合用来进行大规模的数值计算,其中也包括实现和训练深度神经网络模型.下面将介绍TensorFlow中模型的基本组成部分,同时将构建一个CNN模型来对M ...

  5. Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊

    Amazon公司的Werner Vogels于上周宣布Amazon深度学习框架将会正式选用MXNet,并且AWS将会通过增加源代码贡献.改进文档以及支持来自其它框架的可视化.开发以及迁移工具,为实现M ...

  6. Theano2.1.17-基础知识之剖析theano的函数

    来自:http://deeplearning.net/software/theano/tutorial/profiling.html Profiling Theano function note:该方 ...

  7. MXNet 分布式环境部署

    MXNet 分布式环境部署 1. MxNet 分布式介绍 先忽略吧, 回头在填上去 2. 分布式部署方法 假设有两台主机ip地址分别是xxx.xxx.xxx.114 和 xxx.xxx.xxx.111 ...

  8. Windows中安装Pytorch和Torch

    近年来,深度学习框架如雨后春笋般的涌现出来,如TensorFlow.caffe.caffe2.PyTorch.Keras.Theano.Torch等,对于从事计算机视觉/机器学习/图像处理方面的研究者 ...

  9. GitHub 上 57 款最流行的开源深度学习项目

    转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github GitHub 上 57 款最 ...

随机推荐

  1. Burp - Attack type

    有时间不用难免忘记,做个总结 1. Sniper (狙击手) 它使用一组Payload集合,依次替换Payload位置上(一次攻击只能使用一个Payload位置)被§标志的文本(而没有被§标志的文本将 ...

  2. [转]matplotlib - plt.rcParams、matshow/cmap/坐标轴设置

    转自:https://blog.csdn.net/qq_30815237/article/details/87903024 1.plt.rcParams plt(matplotlib.pyplot)使 ...

  3. centos7搭建filebeat

    filebeat的环境搭建 cd /home/elk wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4 ...

  4. mysql编码问题:

    在my.ini文件改为: [client]default-character-set = utf8port=3306 [mysql] default-character-set=utf8 [mysql ...

  5. linux中断源码分析 - 中断发生(三)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 回顾 上篇文章linux中断源码分析 - 初始化(二)已经描述了中断描述符表和中断描述符数组的初始化,由于在初始 ...

  6. SQL Server中删除用户时报错,提示:The database principal owns a schema in the database, and cannot be dropped(转载)

    Description of the problem: When you tried to drop a user, you got this message: Error: 15138 The da ...

  7. Luogu4622 COCI2012-2013#6 JEDAN 组合、DP

    传送门 题意:给出一个$N$个数的序列$a_i$,其中$a_i=-1$表示第$i$个位置数字未知,问有多少种用非负整数代替$a_i$中$-1$的方法使得从全$0$序列经过以下操作若干次得到序列$a_i ...

  8. React-本地状态(state)

    在类组件中添加本地状态(state): 1.创建一个继承自 React.Component 类的 ES6 class 同名类: 2.添加一个 类构造函数(class constructor) 初始化 ...

  9. b/s程序真的很方便部署吗

    公共应用当然是web系统,这个不说,我说的是企业应用. 最近一些年在企业开发中都提倡web应用,仿佛winform可以结束了,但真的这样吗?最近几天的真实经历如下: 我们部门新开发了一套系统要上线,由 ...

  10. 【iOS】build diff: /../Podfile.lock: No such file or directory

    Github 上下载的开源项目,在 Xcode 打开运行后报了错,如图所示: 解决方法: 在工程设置中的 Build Phases 下删除 Check Pods Manifest.lock 及 Cop ...