这篇文章我想来比较一下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. go标准库的学习-runtime

    参考:https://studygolang.com/pkgdoc 导入方式: import "runtime" runtime包提供和go运行时环境的互操作,如控制go程的函数. ...

  2. 学习 JS滚轮事件(mousewheel/DOMMouseScroll)

    学习 JS滚轮事件(mousewheel/DOMMouseScroll) 1-1 滚轮事件兼容性的差异   IE,chrome,safari 浏览器都使用 onmousewheel, 只有firefo ...

  3. fragment The specified child already has a parent. You must call removeView()

    在切换Fragment的时候出现:The specified child already has a parent. You must call removeView()异常. 错误主要出在Fragm ...

  4. python descriptor 详解

    descriptor简介 在python中,如果一个新式类定义了__get__, __set__, __delete__方法中的一个或者多个,那么称之为descriptor.descriptor有分为 ...

  5. 源码分享篇:使用Python进行QQ批量登录

    直接上源码 1 #coding=utf-8 2 __author__ = 'Eagle' 3 import os 4 import time 5 import win32gui 6 import wi ...

  6. 校内模拟赛 SovietPower Play With Amstar

    SovietPower Play With Amstar 题意: 一棵二叉树,每次询问一条路径上的路径和,初始每个点有一个权值1,询问后权值变为0.$n \leq 10^7,m\leq10^6$ 分析 ...

  7. mysql 常用的几个函数

    IF 函数 语法:`IF`(expr1,expr2,expr3); 当expr1为ture时,值为expr2,当expr1为false时,值为expr3. 如: IFNULL 函数 语法:IFNULL ...

  8. [UWP 自定义控件]了解模板化控件(2.1):理解ContentControl

    UWP的UI主要由布局容器和内容控件(ContentControl)组成.布局容器是指Grid.StackPanel等继承自Panel,可以拥有多个子元素的类.与此相对,ContentControl则 ...

  9. Nginx入门【转】

    原文地址:http://blog.csdn.net/u012486840/article/details/53098890 1.静态HTTP服务器 首先,Nginx是一个HTTP服务器,可以将服务器上 ...

  10. 牛客小白月赛6-E对弈-简单搜索

    https://www.nowcoder.com/acm/contest/136/E 我搜索很差啊,看了学长代码,自己在下面手敲了一遍,感觉学长的极其精巧,把我繁琐的搜索步骤给简化了不少 其实本题想法 ...