业界 | MXNet 0.11发布,加入动态图接口Gluon(附CMU教授亲笔教程)

2018-05-08 11:11:24 浏览数 (1)

机器之心报道

作者:MXNet团队

日前,亚马逊官方AI 博客公布了MXNet 0.11版本(参见:业界 | Apache MXNet 发布 v0.11.0版,支持苹果Core ML和Keras v1.2)。今日,MXNet 团队做了中文版介绍并发布到之乎上。

链接:https://zhuanlan.zhihu.com/p/28648399?from=timeline&isappinstalled=0

经过 3 个月的开发,MXNet 0.11 版发布啦!0.11 是 MXNet 正式加入 Apache 以后的第一个版本,官方网站搬到了 Apache 的服务器(注意:要在最上方 Version 处选择 master 才能看到包含 Gluon 的最新文档)。

这次最大的改进是加入了动态图接口 Gluon。Gluon 学习了 Keras,Chainer,和 Pytorch 的优点,并加以改进。接口更简单,且支持动态图(Imperative)编程。相比 TF,Caffe2 等静态图(Symbolic)框架更加灵活易用。同时 Gluon 还继承了 MXNet 速度快,省显存,并行效率高的优点,并支持静、动态图混用,速度比 Pytorch 更快。

同时为了彻底解决 MXNet 文档不全的弱点,我们还特地邀请了前 CMU 知名教授 Alex Smola 和即将出任 CMU 教授的小网红 Zachary Lipton 联手为 Gluon 打造文档!

接口更简洁

Gluon 采用 Keras 和 Numpy 风格 API,并且 Layer 可以自动判断输入长度。用过 Chainer 和 Pytorch 的人想必都体会过每一层都要记住前一层输出长度的麻烦,从卷积层到全联接层过度时长度计算更是痛苦,往往要运行一遍才知道。在 Gluon 里则没有这种问题,每层只要指定输出长度,输入长度则可以由系统自动计算。

速度更快

深度学习框架大体分为两类:以 TensorFlow,caffe2 为代表的静态图(Symbolic)框架和以 Chainer,Pytorch 为代表的动态图(Imperative)框架。静态图的优势在于速度快,省内存,便于线上部署。而动态图框架的优势是灵活,易用,debug 方便,特别是在自然语言处理和增强学习等领域,比起静态图框架有显著优势。

Gluon 同时支持灵活的动态图和高效的静态图,让你在享受动态编程的灵活易用的同时最小化性能的损失。而 Gluon 的 HybridBlock 和 hybridize 接口让你可以在静态动态间一键切换。0.11 版 Gluon 比 0.20 版 Pytorch 快 10% 以上,在未来的一两个月我们会加入更多优化,再提高 10% 以上的性能。

既是文档,又是教材

深度学习的教材和样例虽多,但是教材往往重理论轻实践,而样例重实践却不系统。为了填补理论和实践之间的空白,并一举解决 MXNet 文档不全的弱项,我们特邀两位 CMU 教授 Alex Smola 和 Zachary Lipton 为 Gluon 撰写一部兼顾深度学习理论,动手编程,和实战应用的文档 教材。

Gluon 教程包括深度学习理论讲解和代码实践。前五章每个例子都包括了两个版本。从零开始(from scratch)版本深入讲解所有细节,Gluon 版本则着重演示高级封装的灵活高效。建议刚开始接触深度学习的同学从头开始顺序阅读,而已经有一定经验的同学可以跳过基础教程只看 Gluon 版。这套教程现在在 Github 上公开写作,共计划 18 章,已经完成了前五章。印刷出版和中文翻译也在计划中。我们保证每天更新,绝不弃坑,欢迎大家试读,也欢迎参与创作!

Gluon 与其他框架的对比

Tensorflow:Gluon 同时支持静态图和动态图,在灵活性和速度上都有优势。但由于 Gluon 刚刚面市,在成熟度和线上部署方面还有不足。总的来说在做深度学习研究的同学不妨一试。

Pytorch:Gluon 与 Pytorch 的相似度很高,而 Gluon 独特的静、动态图混合功能可以在不牺牲灵活性的前提下提高性能。如果你喜欢 pytorch 的简单易用又在乎性能,那么强烈建议你试一试 Gluon。

链接

  • Apache MXNet 官方网站:https://mxnet.incubator.apache.org/
  • 0.11 新特性:https://github.com/apache/incubator-mxnet/releases
  • 安装指南https://mxnet.incubator.apache.org/versions/master/get_started/install.html
  • Gluon 教程:http://gluon.mxnet.io/
  • Gluon 教学 PPT: https://github.com/zackchase/mxnet-slides/blob/master/kdd-mxnet-slides.pdf
  • Gluon 深度学习样例:https://github.com/apache/incubator-mxnet/tree/master/example/gluon

本文为机器之心报道,转载请联系本公众号获得授权。

0 人点赞