2017/0306/209456.html">CVPR 2017李沐介绍MXNet新接口Gluon:高效支持命令式与符号式编程 2017-07-28 12:27 来源:机器之心 程序设计 /58 原标题:CVPR 2017李沐介绍MXNet新接口Gluon:高效支持命令式与符号式编程 选自Github 参与:Smith、蒋思源 MXNet 现已广泛应用于生产环境中,并且因为其运行速度而饱受赞誉。现在,MXNet 有了十分重要的新接口 Gluon,MXNet 可以通过它令科研工作变得更加简单。本文将简要介绍同时具备命令式执行和符号式执行的接口 Gluon,并且为读者介绍李沐博士在 CVPR 2017 上所做的 MXNet/Gluon 教程。机器之心也将对使用 Gluon 构建卷积神经网络和实现并行计算的过程与优势这两部分内容进行展开。更详细的内容请查看李沐博士的 Github。 教程地址:https://github.com/mli/cvpr17 在本教程中,我们将体验如何使用 Gluon 来实现各种各样的算法。我们将在本教程中细细体会每一个概念,并且无需深度学习背景。读者朋友也可以使用笔记本按照以下的介绍文档尝试使用 Gluon。此外,读者也将体验到 Gluon 命令式地开发和符号式地部署,这是非常高效和便捷的方式。 下面是本教程的文档和 PPT 资源。 什么是 Gluon?为什么我们要使用 Gluon?:https://github.com/mli/cvpr17/blob/master/gluon_part1.pdf 第一部分: n 维数组文档: 自动微分文档: 线性回归:(文档一),(文档二) 卷积神经网络:(文档一),直播,(文档二) 第二部分: 混合命令(hybridizing imperative)和符号编程文档: MXNet 后端引擎幻灯片:https://github.com/mli/cvpr17/blob/master/gluon_part2.pdf 多 GPU 和多机器幻灯片:https://github.com/mli/cvpr17/blob/master/gluon_part3.pdf 使用多 GPU 训练模型:(文档一),(文档二) 使用多机器训练模型文档: 以上所有文档笔记都是可运行的,我们可以按照以下指示安装本教程。同时机器之心也将在文章后面介绍怎样使用 Gluon 构建卷积神经网络和并行运算。 运行本教程 每一个教程的文档都是使用 Jupyter notebook 构建的,因此它们都是可编辑和可运行的。现在假定大家已经安装了 Python,除此之外,我们还需要 Jupyter 和最新版本的 MXNet。下面的命令可以使用 pip 安装这三个库: # optional: update pip to the newest versionsudo pip install --upgrade pip# install jupyterpip install jupyter --user# install the nightly built mxnetpip install mxnet --pre --user 默认的 MXNet 包只支持 CPU,但我们有一些教程需要调用 GPU。如果我们有可用的 GPU,并且安装了 CUDA 7.5 或 8.0,那么我们就可以使用 pip 安装 GPU 支持包: pip install mxnet-cu75 --pre --user # for CUDA 7.5pip install mxnet-cu80 --pre --user # for CUDA 8.0 现在我们就可以获取源代码并运行它们: git clone https://github.com/zackchase/mxnet-the-straight-dope/cd mxnet-the-straight-dopejupyter notebook 最后的命令是运行 Jupyter notebook,然后我们就可以编辑和运行本教程了。 什么是 Gluon,为什么使用它? 在进入教程之前,我们需要先了解什么是 Gluon。如下图所示,我们可以看到各大主流框架的时间顺序,其中上半部分如 Chainer、Pytorch 和 MXNet 可以称为命令式(imperative)框架,下半部分可以称为符号式(symbolic)框架。我们能注意到,MXNet 同时具有命令式和符号式的特点。 如下所示,MXNet 在实现残差网络和 Adam 优化算法时所采用的代码。我们可以看到 MXNet 在定义残差网络时使用的是符号式的执行,我们需要像调用函数那样确定每一个参数而完整地定义一个神经网络。而 MXNet 在实现 Adam 优化算法时,我们可以看到它使用的是命令式的执行进行张量计算。但 MXNet 还不够优秀,我们需要更加强大的 Gluon。 因此我们可以从下图看到,Gluon 结合了命令式的框架 Pytorch、Chainer 和符号式的框架 Keras。它将更为强大,可以令科研更加轻松。 (责任编辑:本港台直播) |