mxnet,theano与torch的简单比较
这篇文章我想来比较一下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的简单比较的更多相关文章
- 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比
http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...
- 【神经网络与深度学习】chainer边运行边定义的方法使构建深度学习网络变的灵活简单
Chainer是一个专门为高效研究和开发深度学习算法而设计的开源框架. 这篇博文会通过一些例子简要地介绍一下Chainer,同时把它与其他一些框架做比较,比如Caffe.Theano.Torch和Te ...
- Ubuntu16.04+cuda8.0rc+opencv3.1.0+caffe+Theano+torch7搭建教程
https://blog.csdn.net/jywowaa/article/details/52263711 学习中用到深度学习的框架,需要搭建caffe.theano和torch框架.经过一个月的不 ...
- TensorFlow 简单实例
TF 手写体识别简单实例: TensorFlow很适合用来进行大规模的数值计算,其中也包括实现和训练深度神经网络模型.下面将介绍TensorFlow中模型的基本组成部分,同时将构建一个CNN模型来对M ...
- Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊
Amazon公司的Werner Vogels于上周宣布Amazon深度学习框架将会正式选用MXNet,并且AWS将会通过增加源代码贡献.改进文档以及支持来自其它框架的可视化.开发以及迁移工具,为实现M ...
- Theano2.1.17-基础知识之剖析theano的函数
来自:http://deeplearning.net/software/theano/tutorial/profiling.html Profiling Theano function note:该方 ...
- MXNet 分布式环境部署
MXNet 分布式环境部署 1. MxNet 分布式介绍 先忽略吧, 回头在填上去 2. 分布式部署方法 假设有两台主机ip地址分别是xxx.xxx.xxx.114 和 xxx.xxx.xxx.111 ...
- Windows中安装Pytorch和Torch
近年来,深度学习框架如雨后春笋般的涌现出来,如TensorFlow.caffe.caffe2.PyTorch.Keras.Theano.Torch等,对于从事计算机视觉/机器学习/图像处理方面的研究者 ...
- GitHub 上 57 款最流行的开源深度学习项目
转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github GitHub 上 57 款最 ...
随机推荐
- maven项目红叉问题
maven项目红叉问题,有的时候是因为代码报错,有的时候是因为JDK的缘故,比如新建Maven项目,默认JDK为5,这时你在pom.xml配置了JDK为8.这时项目就报错了,就需要你update pr ...
- find,xargs,tar有选择打包
find ./ -mtime 83 -exec sz {} \; find . -type f -exec ls -l {} \; \;表达 -exec 的结束. ================== ...
- MATLAB卷积运算(conv、conv2、convn)解释
1 conv(向量卷积运算) 所谓两个向量卷积,说白了就是多项式乘法.比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下:把p的元素作为一个多项式的系数,多项式按升幂(或降幂)排列, ...
- Html5 手机端网页不允许缩放
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- 由javascript的闭包引申到程序语言编译上的自由变量作用域的考量
function foo() { var x = 10; return function bar() { console.log(x); }; } // "foo"返回的也是一个f ...
- 上传头像,layui上传图片
layui上传与bootstrap上传相似,只是不需要下插件, layui自带的已够用 先看一下前台界面,这里是用到的上传头像 先点击开始上传,头像上传至服务器中, 返回json添加至form表单中, ...
- 【webstorm】注册码 更新笔记
20190225 1.修改hosts文件,windows的hosts文件路径是 C:\ Windows \ System32 \ drivers \ etc \ hosts 0.0.0.0 acco ...
- Redis对象占用内存分析
当你往Redis中插入了一系统对象,如何分析这些对象的占用情况? 1.我们可以在Redis的控制台使用info命令来查看各项指标,其中有一项是Memory,可以通过存储前后的used_memory差异 ...
- 【php增删改查实例】第二十三节 - PHP文件上传
22. PHP文件上传 22.1 资源文件 将这三个东西拷贝项目的根目录. 拷贝完毕后,打开upload.html: 现在,我们在项目的根目录去编写一个upload.php. PHP给我们提供了很多关 ...
- [开源 .NET 跨平台 Crawler 数据采集 爬虫框架: DotnetSpider] [五] 如何做全站采集?
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 五.如何做全站采集 如何做全站采集? 很多同学加群都在问, 如何使用Dotne ...