MXNet是一个开源的深度学习框架,能够使用户在各种设备(从云基础设施到移动设备)上定义,训练和部署深层网络。MXNet可高度扩展,并且能够快速训练模型,支持灵活的编程模型和多种语言。在MXNet框架下,用户可以混合符号式(symbolic)和命令式(imperative)编程风格,以最大限度地提高效率和生产力。MXNet建立在一个动态依赖调度器上,它能够自动行化运行符号和命令操作。MXNet顶部的图优化层,能够加快符号执行和提高内存效率。MXNet库具有便携和轻量的优点,并且可扩展到多个GPU和多个机器。

设置和安装

用户可以在Amazon Linux,Ubuntu / Debian,OS X和Windows操作系统上运行MXNet。 MXNet可以在Docker和Cloud上运行,如同AWS。MXNet也可以在嵌入式设备上运行,如Raspberry Pi运行Raspbian。目前,MXNet可支持Python,R,Julia和Scala语言。

如果用户在Amazon Linux或Ubuntu上运行Python / R,则可以使用Git Bash脚本快速安装MXNet库及其所有依赖项。

获取更多有关设置MXNet的详细信息,请参阅以下内容:

1、使用MXNet的依赖项

2、安装MXNet的分步说明指南

3、常见安装问题

使用MXNet

在完成安装MXNet和语言包后,运行以下代码来验证安装是否成功。

Julia

julia> using MXNet

julia> a = mx.ones((2,3), mx.gpu())
mx.NDArray{Float32}(2,3)

julia> Array{Float32}(a * 2)
2×3 Array{Float32,2}:
 2.0  2.0  2.0
 2.0  2.0  2.0

Python

Python接口类似于numpy.NDArray:

 >>> import mxnet as mx
 >>> a = mx.nd.ones((2, 3), mx.gpu())
 >>> print ((a * 2).asnumpy())
   [[ 2.  2.  2.]
    [ 2.  2.  2.]]

R

  > require(mxnet)
   Loading required package: mxnet
   > a <- mx.nd.ones(c(2,3))
   > a
        [,1] [,2] [,3]
   [1,]    1    1    1
   [2,]    1    1    1
   > a + 1
        [,1] [,2] [,3]
   [1,]    2    2    2
   [2,]    2    2    2

Scala

用户可以在Scala中执行张量或矩阵计算:

  scala> import ml.dmlc.mxnet._
   import ml.dmlc.mxnet._

   scala> val arr = NDArray.ones(2, 3)
   arr: ml.dmlc.mxnet.NDArray = ml.dmlc.mxnet.NDArray@f5e74790

   scala> arr.shape
   res0: ml.dmlc.mxnet.Shape = (2,3)

   scala> (arr * 2).toArray
   res2: Array[Float] = Array(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)

   scala> (arr * 2).shape
   res3: ml.dmlc.mxnet.Shape = (2,3)

推荐入门教程

1、使用卷积神经网络的手写数字识别(初学者)

2、使用LSTM的字符级语言模型(高级)

下一步

1、设置和安装

2、教程

3、方法

4、构建

MXNet开源社区

广泛的模型支持——训练和部署最新的深层卷积神经网络(CNN)和长期短期记忆(LSTM)模型

丰富的参考文献库——基于样本教程(包括代码),如图像分类,语言建模,神经艺术和语音识别等。

开放和协作社区——来自许多顶级大学和行业合作伙伴的支持和贡献