MXNetR—原生态R语言深度学习

发布时间: 2015-10-19 阅读数: 3930

MXNetR是最大开源分布式机器学习项目DMLC发布的深度学习框架MXNet的一个R包。MXNetR填补了R语言在深度学习和GPU计算上的空白。 可以直接使用R进行显卡加速深度神经网络训练。

  1. 它能够使您在R上编写无缝的多核GPU张量/矩阵运算
  2. 它能够在R上构建和定制最先进水平的深度学习模型,并将他们应用到图像分类和数据科学等挑战性任务

该包的主要贡献者Gossip_useR严酷的魔王都是深度R hacker。

一、DMLC简介

DMLC:最大开源分布式机器学习项目。作为一个开源项目,DMLC的相关代码直接托管在GitHub中,并采用Apache2.0协议进行维护。DMLC项目的发起者陈天奇怪(网名)表示,项目最初的想法是减少分布式机器学习开发的成本以及新算法被大家接受测试的时间。目前,该项目已经集成了XGBoost、CXXNET、MXNet及Minerva等机器学习库与rabit和参数服务器等系统组件。

二、深度学习框架MXNet

1.简介

MXNet是自xgboost, cxxnet, minerva以来集合DMLC几乎所有开发者力量的一个机器学习项目。MXNet名字源于”Mix and Maximize”。

2.技术特性

与其他工具相比,mxnet结合了符号语言和过程语言的编程模型,并试图最大化各自优势,利用统一的执行引擎进行自动多GPU并行调度优化。不同的编程模型有各自的优势,以往的深度学习库往往着重于灵活性,或者性能。MXNet通过融合的方式把各种编程模型整合在一起,并且通过统一的轻量级运行引擎进行执行调度。使得用户可以直接复用稳定高效的神经网络模块,并且可以通过Python等高级语言进行快速扩展。

MXNet由 dmlc/cxxnet, dmlc/minerva和Purine2的作者发起,融合了Minerva的动态执行,cxxnet的静态优化和Purine2的符号计算等思想,直接支持基于Python的parameter server接口,使得代码可以很快向分布式进行迁移。每个模块都进行清晰设计,使得每一部分本身都具有被直接利用的价值。C接口和静态/动态Library使得对于新语言的扩展更加容易,目前支持C++和python 2/3 ,接下来相信会有更多语言支持,并方便其他工具增加深度学习功能。

  1. 轻量级调度引擎。在数据流调度的基础上引入了读写操作调度,并且使得调度和调度对象无关,用以直接有机支持动态计算和静态计算的统一多GPU多线程调度,使得上层实现更加简洁灵活。
  2. 符号计算支持。MXNet支持基于静态计算流图符号计算。计算流图不仅使设计复杂网络更加简单快捷,而且基于计算流图,MXNet可以更加高效得利用内存。 同时进一步优化了静态执行的规划,内存需求比原本已经省的cxxnet还要少。
  3. 混合执行引擎。相比cxxnet的全静态执行,minerva的全动态执行。MXNet采用动态静态混合执行引擎,可以把cxxnet静态优化的效率带和ndarray动态运行的灵活性结合起来。把高效的c++库更加灵活地和Python等高级语言结合在一起。
  4. 更加灵活:在MShadow C++表达式模板的基础上,符号计算和ndarray使在Python等高级语言内编写优化算法,损失函数和其他深度学习组件并高效无缝支持CPU/GPU成为可能。用户无需关心底层实现,在符号和NDArray层面完成逻辑即可进行高效的模型训练和预测。
  5. 对于云计算更加友好:所有数据模型可以从S3/HDFS/Azure上直接加载训练。
  6. 代码更加简洁高效:大量使用C++11特性,使MXNet利用最少的代码实现尽可能最大的功能。用约11k行C++代码 (加上注释 4k行)实现了以上核心功能。
  7. 开源用户和设计文档,mxnet提供了非常详细的用户文档和设计文档以及样例。所有的代码都有详细的文档注释。并且会持续更新代码和系统设计细节,希望对于广大深度学习系统开发和爱好者有所帮助。

三、MXNetR

1、安装

详见安装指南

2.学习指南

Neural Network with MXNet in Five Minutes

Classify Real-World Images with Pre-trained Model

Handwritten Digits Classification Competition

Tutorial on NDArray and Symbol

 

本文由雪晴数据网整理而成,转载请注明本文原链接http://www.xueqing.tv/cms/article/view/id/50

分享到:
热门文章

REmap发布,用R绘制百度迁徙图

2015年07月23日更新 19674次阅读

学习R语言,一篇文章让你从懵圈到入

2016年05月09日更新 13611次阅读

清华大学教授:大数据时代 统计学依

2015年08月07日更新 10975次阅读

在R中填充缺失数据—mice包

2015年12月31日更新 9348次阅读

精通 R plot—第一部分:颜色

2016年01月20日更新 7820次阅读

非统计学专业的人该如何学习 R 语

2015年07月24日更新 7757次阅读
热门课程

R语言初级课程

2015年02月20日发布 3102名学员

R语言高效数据清理工具包dplyr

2015年08月30日发布 1626名学员

R语言数据分析入门

2016年05月10日发布 1469名学员

如何用R做数据预处理

2016年06月03日发布 1125名学员

全栈数据工程师养成攻略

2016年11月08日发布 977名学员

R语言大规模数据分析实战

2015年12月17日发布 933名学员
登录 注册