MxNet系列——get_started——index

来源:互联网 发布:湖北金融数据网 编辑:程序博客网 时间:2024/05/01 12:26

MXNet: 一个大规模的深度学习框架

MXNet 是一个开源框架,它允许你在多种设备(从云架构到移动设备)上定义,训练和部署深度神经网络。MXNet 是一个可拓展的深度学习工具,它允许快速训练模型,支持灵活的编程模型和多种编程语言。 MXNet 允许混合使用命令式编程和符号编程,以最大化两者的高效性和生产力。MXNet 是在一个动态依赖调度器上构建的【dynamic dependency scheduler that automatically parallelizes both symbolic and imperative operations on the fly】。最后的图优化层使得符号运算既高速,又使得内存利用率高。MXNet 是一个便携的,轻便的深度学习工具,可以拓展到多GPUs和多台机器上。

  • 灵活的编程模型
    MXNet 同时支持命令式编程和符号编程,最大化性能和生成力。

  • 从云端到客户端便携
    MXNet 可以运行在CPUs,GPUs,集群,服务器,桌面和移动设备上。

  • 支持多种编程语言
    MXNet 支持使用 Python, R, Scala, Julia, 和 C++ 构建和训练模型。已经训练好的模型可以在更多种编程语言(比如Matlab和JavaScript)中用于预测任务。

  • 本地分布式训练
    MXNet 支持在多CPU/GPU机器上进行分布式训练,以有效利用云计算。

  • 性能优化
    使用一个优化的 C++ 后端引擎,让I/O和计算都并行化。无论使用哪种编程语言,都能最优地运行。

MXNet 开源社区

  • 支持多种模型 – 训练和部署最新的深度卷积神经网络 (CNNs) 和 长短时记忆网络 (LSTMs)。

  • 参考例子库 – 构建了简单的教程(附代码),比如,图像分类,语言模型,神经艺术,语音识别等。

  • 开放协作的社区 – 来自顶尖大学和工业界伙伴的支持和贡献。

配置和安装

你可以在Amazon Linux, Ubuntu/Debian, OS X, 和 Windows等操作系统上运行MXNet。MXNet 也可以在 Docker 和类似于AWS的云上运行。MXNet现在支持的语言包括:Python, R, Julia 和 Scala等。

如果你是在Amazon Linux 或 Ubuntu 上运行 Python/R,你可以通过使用 Git Bash 脚本来快速安装MXNet工具包及其相关依赖。

有关配置MXNet的更多内容,请参考以下内容:

  • 使用MXNet的前提条件
  • 安装MXNet的详细教程
  • 常见的安装问题

入门 | 张量计算

下面,学习以下张量计算接口。张量计算接口通常比符号接口更加灵活,常用于实现网络层,定义权重更新规则,和调试。

Julia

julia> using MXNetjulia> 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:

“`python

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

R

“`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
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@f5e74790scala> arr.shaperes0: ml.dmlc.mxnet.Shape = (2,3)scala> (arr * 2).toArrayres2: Array[Float] = Array(2.0, 2.0, 2.0, 2.0, 2.0, 2.0)scala> (arr * 2).shaperes3: ml.dmlc.mxnet.Shape = (2,3)

“`

推荐的入门教程

  • 使用卷积神经网络进行手写字符识别 (菜鸟)
  • 使用LSTMs的字符级别的语言模型 (高手)

下一步

  • 配置和安装
  • 教程
  • 如何办系列
  • 架构
0 0