文档章节

五大主流深度学习框架对比:MXNET是最好选择

mickelfeng
 mickelfeng
发布于 2017/05/25 09:48
字数 1714
阅读 150
收藏 1
近日,微软数据科学家 Anusua Trivedi 发表系列文章讲解深度学习,这是此系列的第一篇,对主流深度学习框架进行了比较分析。

 

背景和途径

本博客系列基于我即将在新加坡 Hadoop+Strata 世界峰会上发表的关于深度学习模型复用性的演讲。该系列分几个部分来描述我的经验,并深入讨论我选择使用深度学习模型背后的原因。

深度学习是研究的融合领域,在多个领域中都有其应用。我尝试展示迁移学习和微调策略是如何在不同的不相交领域中复用相同的卷积神经网络模型的。该模型在多种不同领域中的应用对于使用该微调模型来说,意义非凡。

在本博客中,我描述并比较了常用的开源深度学习构架。我深入讨论了每个构架各自的优缺点,以及为什么我选择在我的工作中使用 Theano。

符号构架

符号计算构架(如 CNTK,MXNET,TensorFlow,Theano)被定义为一个向量运算符的符号图,例如矩阵的加法/乘法或卷积。一个层仅是这些运算符的组合。构造块(运算符)良好的粒度允许用户在不需要在低级语言(如 Caffe)中实现的情况下,开发新的复杂层类型。

在我的工作中,我使用了不同的符号计算框架。然而,我发现由于每个框架的设计和目前的实现方法不同,它们都有各自的优缺点,没有一个框架能完美地满足所有的需要。针对我的需要,我选择使用 Theano。

我们比较了下列符号计算框架:

Theano

软件:Theano

开发者:Université de Montréal

软件证书:BSD 证书

是否开源:是

平台:跨平台

编写语言:Python

接口:Python

是否支持 CUDA:是

自动微分:是

是否有预训练模型:通过  Lasagne 的 model zoo

循环网络:是

卷积网络:是

随机储存器/动态贝叶斯网络:是

TensorFlow

软件:TensorFlow

开发者:Google Brain Team

软件证书:Apache 2.0

是否开源:是

平台:Linux,Mac OS X

编写语言:C++,Python

接口:Python,C/C++

是否支持 CUDA:是

自动微分:是

是否有预训练模型:否

循环网络:是

卷积网络:是

随机储存器/动态贝叶斯网络:是

MXNET

软件:MXNET

开发者:分布式(深度)机器学习社区

软件证书:Apache 2.0

是否开源:是

平台:Ubuntu, OS X, Windows, AWS, Android, iOS, JavaScript

编写语言:C++, Python, Julia, Matlab, R, Scala

接口:C++, Python, Julia, Matlab, JavaScript, R, Scala

是否支持 CUDA:是

自动微分:是

是否有预训练模型:是

循环网络:是

卷积网络:是

随机储存器/动态贝叶斯网络:是

优缺点

非符号构架优点:

像 torch,caffe 这样的非符号(命令式)神经网络构架的计算部分的设计非常相似。

根据可表达性,设计良好的命令构架也能揭露类图接口(例如 torch/nngraph)。

非符号架构缺点:

命令构架主要的缺点实际上在于人工优化。例如,就地操作必须要人工实现。

大多命令构架设计得不够好,比不上符号构架的可表达性。

符号构架优点:

符号构架可能可以从依赖图中自动推导优化。

一个符号构架可以利用更多内存复用机会,这点 MXNET 做得很好。

符号构架能自动计算最佳进度表。详情请参照 TensorFlow 白皮书:http://download.tensorflow.org/paper/whitepaper2015.pdf

符号构架缺点:

现存可用开源符号构架的表现仍逊色于命令构架。

符号构架缺点:

现存可用开源符号构架的表现仍逊色于命令构架。

增加新运算符

在这些构架中,增加一个表现理想的运算符并不容易。

代码复用性

训练深度网络非常耗时。所以,Caffe 发布了一些预训练模型/权重(model zoo),它们能作为初始权重被用于特殊领域或自定义图像的迁移学习或微调深度网络。

TheanoLasagne:是构建在顶尖 Theano 上的高级构架。在 Lasagne 中使用 Caffe 预训练模型权重非常容

TensorFlow:不支持预训练模型。

MXNET:拥有 caffe 转换工具,能够适应 caffe 预训练模型权重。

低级 Tensor 操作符

理想而高效的低级运算符实现能充当新模型的原料,节省了写新运算符的工作量。

控制流运算符

控制流运算符增加符号引擎的表达性和通用性。

高级支持

Theano:纯净的符号计算构架。高级构架能适应所使用的期望平均值。成功案例包括 Keras、Lasagne、blocks。

TensorFlow:设计良好,不仅考虑到了神经网络的训练,同时避免彻底成为神经网络构架,是非常出色的成果。图像、队列、图像增加器等能成为更高级包装的有用构造块。

MXNET:除了符号部分,MXNET 也支持图像分类——从数据加载到构建模型,该模型有可以开始训练的方法。

性能

单 GPU 下的基准测试

我使用单 GPU (NVIDIA Quadro K1200 GPU)在 MNIST 数据集上对 LeNet 模型进行了基准测试。

内存

显存有限可能是大型模型的常见问题。

单 GPU 速度

Theano 花了很长的时间编译图像,特别是模型复杂的时候。TensorFlow 有点慢。

总结

Theano(高级的 Lasagne 和 Keras)是深度学习模型的极佳选择。很容易用 Lasagne/Keras 实现新网络或者编辑现存网络。我更喜欢用 phthon 语言,并且因为 Lasagne/Keras 有非常成熟的 python 接口而更喜欢使用它们。然而,它们不支持 R。我已经尝试在 Lasagne/Keras 中使用迁移学习和微调,编辑一个现存网络并自定义特定域的自定义数据是非常容易的。

不同构架之间的比较显示了 MXNET 是最好的选择(更好的表现/记忆)。此外,它对 R 的支持很出色。事实上,它是唯一支持所有 R 功能的构架。在 MXNET 中,迁移学习和微调网络是可能实现的,但是不太容易(和 Lasagne/Keras 相比)。这使得编辑现存训练好的网络更困难,因此使用特定域的自定义数据也有点难。

本文转载自:http://synchuman.baijia.baidu.com/article/579597

mickelfeng

mickelfeng

粉丝 237
博文 2784
码字总数 604219
作品 0
成都
高级程序员
私信 提问
GPU云服务器深度学习性能模型初探

1 背景   得益于GPU强大的计算能力,深度学习近年来在图像处理、语音识别、自然语言处理等领域取得了重大突破,GPU服务器几乎成了深度学习加速的标配。   阿里云GPU云服务器在公有云上提...

撷峰
2018/04/23
0
0
深度学习框架 MXNet 成为 Apache 孵化器项目

MXNet 是一个轻量级、可移植、灵活的分布式深度学习框架,2017 年 1 月 23 日,该项目进入 Apache 基金会,成为 Apache 的孵化器项目。 MXNet 项目由 DMLC(Distributied (Deep) Machine ...

局长
2017/02/06
3.3K
5
MXNet/Gluon 中网络和参数的存取方式

Gluon是MXNet的高层封装,网络设计简单易用,与Keras类似。随着深度学习技术的普及,类似于Gluon这种,高层封装的深度学习框架,被越来越多的开发者接受和使用。 在开发深度学习算法时,必然...

SpikeKing
2018/05/29
0
0
业界 | MXNet开放支持Keras,高效实现CNN与RNN的分布式训练

  选自AWS Machine Learning Blog   作者:Lai Wei、Kalyanee Chendke、Aaron Markham、Sandeep Krishnamurthy   机器之心编译   参与:路、王淑婷      今日 AWS 发布博客宣布 ...

机器之心
2018/05/22
0
0
云上深度学习实践(二)-云上MXNet实践

目录 云上深度学习实践(一)-GPU云服务器TensorFlow单机多卡训练性能实践 云上深度学习实践(二)-云上MXNet实践 1 MXNet 简介 1.1 MXNet特点 MXNet是一个全功能,灵活可编程和高扩展性的深...

撷峰
2018/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

64.监控平台介绍 安装zabbix 忘记admin密码

19.1 Linux监控平台介绍 19.2 zabbix监控介绍 19.3/19.4/19.6 安装zabbix 19.5 忘记Admin密码如何做 19.1 Linux监控平台介绍: 常见开源监控软件 ~1.cacti、nagios、zabbix、smokeping、ope...

oschina130111
今天
13
0
当餐饮遇上大数据,嗯真香!

之前去开了一场会,主题是「餐饮领袖新零售峰会」。认真听完了餐饮前辈和新秀们的分享,觉得获益匪浅,把脑子里的核心纪要整理了一下,今天和大家做一个简单的分享,欢迎感兴趣的小伙伴一起交...

数澜科技
今天
7
0
DNS-over-HTTPS 的下一代是 DNS ON BLOCKCHAIN

本文作者:PETER LAI ,是 Diode 的区块链工程师。在进入软件开发领域之前,他主要是在做工商管理相关工作。Peter Lai 也是一位活跃的开源贡献者。目前,他正在与 Diode 团队一起开发基于区块...

红薯
今天
12
0
CC攻击带来的危害我们该如何防御?

随着网络的发展带给我们很多的便利,但是同时也带给我们一些网站安全问题,网络攻击就是常见的网站安全问题。其中作为站长最常见的就是CC攻击,CC攻击是网络攻击方式的一种,是一种比较常见的...

云漫网络Ruan
今天
12
0
实验分析性专业硕士提纲撰写要点

为什么您需要研究论文的提纲? 首先当您进行研究时,您需要聚集许多信息和想法,研究论文提纲可以较好地组织你的想法, 了解您研究资料的流畅度和程度。确保你写作时不会错过任何重要资料以此...

论文辅导员
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部