深度学习框架 MXNet 成为 Apache 孵化器项目

  • 尚剑

2017 年 2 月 3 日

话题:Apache语言 & 开发架构深度学习

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

MXNet 项目由 DMLC(Distributied (Deep) Machine Learning Community)创建,前期开发者主要是CXXNetMinervapurine2的作者。MXNet 项目于 2015 年 9 月开源,目前项目代码托管在 Github 上,已经拥有 200 多位贡献者。

MXNet 的初衷是想结合 Minerva 和 CXXNet 两者的功能:CXXNet 通过配置来定义和训练神经网络,所以在图片分类等使用卷积网络的应用上很方便;而 Minerva 提供类似 numpy 一样的张量计算接口,更灵活。MXNet 就是这样一个两者功能都具备的系统,其名字来自 Minerva 的 M 和 CXXNet 的 XNet,其中 Symbol 的想法来自 CXXNet,而 NDArray 的想法来自 Minerva。

目前主流的深度学习系统一般采用命令式编程(imperative programming,比如 Torch)或声明式编程(declarative programming,比如 Caffe,theano 和 TensorFlow)两种编程模式中的一种,而MXNet 尝试将两种模式结合起来,在命令式编程上 MXNet 提供张量运算,而声明式编程中 MXNet 支持符号表达式。用户可以根据需要自由选择,同时,MXNet 支持多种语言的 API 接口,包括 Python、C++(并支持在 Android 和 iOS 上编译)、R、Scala、Julia、Matlab 和 JavaScript。

继上个月 Amazon 宣布将 MXNet 作为 AWS 的深度学习框架,号召开源社区为 MXNet 投入更多的努力(详见之前InfoQ 的报道)之后,成为 Apache 孵化器项目是 MXNet 发展过程中的又一里程碑,以后 MXNet 必将不断优化完善,带来进一步的性能提升。

未来,MXNet 将主要关注以下四个方向

  1. 支持更多的硬件
  2. 更加完善的操作子
  3. 更多编程语言
  4. 更多的应用

感谢刘志勇对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

Apache语言 & 开发架构深度学习