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将主要关注以下 四个方向 :
感谢刘志勇对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。