mxnet,theano与torch的简单比较

  这两天一直没有去准备这一周的内容,其实我也不是闲着,只不过被另外一个东西吸引了注意力。今天看了一天mxnet的文档,记了一点笔记,有点小收获,笔记会在另一篇随笔里面贴出来。

  这篇文章我想来比较一下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。

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

  

时间: 03-12

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

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模型来对MNIST数据集中的数字手写体进行识别. 基本设置 在我们构建模型之前,我们首先加载MNIST数据集,然后开启一个TensorFlow会话(session). 加载MNIST数据集 TensorFlow中已经有相关脚本,来自动下载和加载MNIST数据集.(脚本会自动创建MNIST_data文件夹来存储

安装MXnet包,实现MNIST手写数体识别

我想写一系列深度学习的简单实战教程,用mxnet做实现平台的实例代码简单讲解深度学习常用的一些技术方向和实战样例.这一系列的主要内容偏向于讲解实际的例子,从样例和代码里中学习解决实际问题.我会默认读者有一定神经网络和深度学习的基础知识,读者在这里不会看到大段推导和理论阐述.基础理论知识十分重要,如果读者对理论知识有兴趣,可以参看已有的深度学习教程补充和巩固理论基础,这里http://deeplearning.net/reading-list/tutorials/有一些不错的理论教程,相关的理论知

pyinstaller 打包遇到的错误总结包含gdal pandas mxnet dll等问题的解决

1 刚开始使用pyinstaller -F ship_detect.py 打包报 File "site-packages\osgeo\__init__.py", line 17, in swig_import_helper ImportError: No module named '_gdal' 这个错误解决方法就是不使用-F 直接pyinstaller ship_detect.py 然后在dist里面找到osgeo._gdal 把它重命名为_gdal,然后这个错误解决了 2 但是又报

MXNet 分布式环境部署

MXNet 分布式环境部署 1. MxNet 分布式介绍 先忽略吧, 回头在填上去 2. 分布式部署方法 假设有两台主机ip地址分别是xxx.xxx.xxx.114 和 xxx.xxx.xxx.111 这两台主机的环境如下 ubuntu Server 16.04SLT python3.6| anaconda3 opencv3 cuda8 cudnn7 2.2 Step1. 搭建MxNet环境 根据文献[^Installing MXNet]以源代码的方式安装MxNet; 注意每台机器生配置的环境需

(转) TensorFlow深度学习,一篇文章就够了

TensorFlow深度学习,一篇文章就够了 2016/09/22 · IT技术 · TensorFlow, 深度学习 分享到:6 原文出处: 我爱计算机 (@tobe迪豪 ) 作者: 陈迪豪,就职小米科技,深度学习工程师,TensorFlow代码提交者. TensorFlow深度学习框架 Google不仅是大数据和云计算的领导者,在机器学习和深度学习上也有很好的实践和积累,在2015年年底开源了内部使用的深度学习框架TensorFlow. 与Caffe.Theano.Torch.MXNet等框

详细解读神经网络十大误解,再也不会弄错它的工作原理

来源:http://www.cstor.cn/textdetail_10544.html_biz=MjM5OTA1MDUyMA==&mid=407358558&idx=2&sn=b21877f23bf4063fa311185009c1f0b7&scene=0#wechat_redirect1462674382044 神经网络是机器学习算法中最流行和最强大的一类.但在作者看来,因为人们对神经网络工作原理存在误解,导致网络设计也很糟糕.所以这篇文章就对其中一些误解进行了讨论.

Day 1之后,AWS亚马逊云给出了Day 2人工智能生存指南

1997年,亚马逊发表了著名的"Day 1"致股东信,贝索斯在信中说" this is Day 1 for the Internet and, if we execute well, for Amazon.com". 在过去的20年间,亚马逊一直保持在Day 1状态.20年后,贝索斯再次在股东信里强调,"Day 2公司将停滞不前,接着将变得无关紧要,然后将经历痛苦的衰退,直至最终死亡.这就是为何我们总是要做Day 1公司的原因." 尽管贝索斯所在

TensorFlow与主流深度学习框架对比

引言:AlphaGo在2017年年初化身Master,在弈城和野狐等平台上横扫中日韩围棋高手,取得60连胜,未尝败绩.AlphaGo背后神秘的推动力就是TensorFlow--Google于2015年11月开源的机器学习及深度学习框架. TensorFlow在2015年年底一出现就受到了极大的关注,在一个月内获得了GitHub上超过一万颗星的关注,目前在所有的机器学习.深度学习项目中排名第一,甚至在所有的Python项目中也排名第一.本文将带我们简单了解下TensorFlow,并与其他主流深度学