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

  • 2017-02-03
  • 本文字数:791 字

    阅读完需:约 3 分钟

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

MXNet 项目由 DMLC(Distributied (Deep) Machine Learning Community)创建,前期开发者主要是 CXXNet Minerva purine2 的作者。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 )关注我们。