开始使用 Amazon Linux 上的 Apache MXNet
开始使用 Ubuntu 上的 Apache MXNet

Apache MXNet 是一个精简、灵活且超级可扩展的深度学习框架,支持一流的深度学习模型,包括卷积神经网络 (CNN) 和长短期记忆网络 (LSTM)。该框架发源于学术界,是几所顶级大学的研究人员的协作和贡献成果。该框架在计算机视觉、语音、语言处理和理解、生成式模型、并行神经网络以及递归神经网络方面表现卓越。

借助 MXNet,您可以在各种使用案例(从大型云基础设施到移动和互联设备)中定义、开发和部署网络。该框架提供非常灵活的环境,支持多种常见语言,并能同时利用命令式和符号式编程结构。此外,MXNet 还非常轻巧。这使它能够非常高效地跨多个 GPU 和多台机器进行扩展,有利于在云中的大型数据集上执行开发。

您可以通过启动适用于 Amazon LinuxUbuntuAWS Deep Learning AMI,轻松地开始使用 AWS 上的 Apache MXNet。

为 Apache MXNet 项目做贡献

使用 GitHub

在 GitHub 项目页面上获取示例代码、手册和教程内容。

GitHub-Mark-120px-plus
CMU
Sigopt
logo-intel
Nvidia
简单

可编程性

简化网络定义并使用您已经知道的语言

持久

可移植性

有效利用内存,允许模型在各种设备和平台上运行

可扩展

可扩展性

能够跨多个 GPU 和主机进行扩展,以快速开发复杂的大型模型

借助 Apache MXNet,您可以混合使用命令式和符号式语言。事实上,“MXNet”这个名称就取自于“mixed networks”(混合网络)。这意味着,您可以借助符号式执行程序优化以及迭代循环和参数更新等命令式语言的灵活功能来操作网络层。由于这种混合的特性,MXNet 可以提供一组独特的功能,使其更容易在拥有多层复杂特性的深度学习模型内运行。 

import mxnet as mx

a = mx.nd.zeros((100, 50))

b = mx.nd.ones((100, 50))

c = a + b

c += 1

print(c)

 

import mxnet as mx

net = mx.symbol.Variable('data')

net = mx.symbol.FullyConnected(data=net, num_hidden=128)

net = mx.symbol.SoftmaxOutput(data=net)

texec = mx.module.Module(net)

texec.forward(data=c)

texec.backward()

此外,MXNet 还在该框架前端支持多种编程语言,包括 C++、JavaScript、Python、r、Matlab、Julia、Scala 和 Go。这使您能够使用已经熟悉的所有语言立即开始运行深度学习。在后台,将始终使用 C++ 编译您的代码,因此,无论您在前端选择运行什么语言,您都可以获得一致的性能。 

c-plus-plus-logo-100px
javascript-logo-100px
python-logo-100px
r-logo-100px
Matlab
julia-logo-100px
scala-logo-100px
go-logo-100px

由于人工智能应用程序日益融入我们的日常生活,能够跨各种设备部署这些应用程序变得越来越重要。在存储可能非常珍贵的边缘位置的移动和互联设备上部署 AI 时,尤为如此。

Apache MXNet 模型可以仅占用极少量的内存。例如,一个千层网络只需不到 4GB 的存储空间。该框架还可以跨平台移植。核心库 (包含所有依赖关系) 可纳入单个 C++ 源文件中,并可针对 iOS 和 Android 进行编译。事实上,通过使用 JavaScript,它甚至可以在浏览器中运行。这种灵活性意味着您可以跨一组非常多样化的使用案例部署模型,从而触及最广泛的用户。 

portability-cloud

portability-mobile

移动设备

portability-browser

浏览器

portability-devices

互联设备

Apache MXNet 基于动态依赖关系计划程序构建而成,该计划程序可在序列代码中解析数据依赖关系,并随时自动平行运行声明式和命令式操作。基于此建立的图表优化层可加快声明式执行的速度并提高内存效率。

由于该自动并行化功能,MXNet 可以非常高效地进行扩展。例如,通过使用越来越多的 EC2 P2 GPU 支持的实例,我们构建了一种热门的图像分析算法 Inception v3,以便对 MXNet 的效率进行基准测试。

mxnet-scale-story-1

红线达到了最优效率,使您能将双倍 GPU 的速度提高一倍。MXNet 吞吐量的提升速率值几乎与所用 GPU 的数量值相同。在包含 16 个 GPU 的单个实例中,Apache MXNet 能够达到 91% 的效率。

不过,对于大型网络,您可能需要跨 P2 实例集群进行扩展。由于 GPU 的数量呈指数式增长,在此情景下运行相同的基准测试只能看到效率值略微降低。

mxnet-scale-story-2

但是,不要简单地以此为标准。云的其中一个优势是您可以使用自己的代码轻松自主地执行测试。我们在 GitHub 上发布了该基准测试,每个人都可以获得。我们建议您深入探索一下,了解它的工作原理并进行运行以获取自己的结果。您还可以使用我们的 AWS CloudFormation 模板,快速启用所需的容量。

通过访问 AWS Marketplace 并启动 AWS Deep Learning AMI,您可以轻松地开始使用 AWS 上的 Apache MXNet。

该 AMI 免费提供最新且稳定的 MXNet 构建内容,以及其他多个热门深度学习框架和工具。您只需为使用的 EC2 时间付费。