0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

APACHE MXNET深度学习框架的概念、工作原理及用例

NVIDIA英伟达 来源:NVIDIA英伟达 作者:NVIDIA英伟达 2022-06-17 09:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Apache MXNet 是一个灵活且可扩展的深度学习框架,支持多种深度学习模型、编程语言,并且有一个开发接口,因其易用性而受到高度重视。

什么是 APACHE MXNET?

MXNet 是开源深度学习框架,允许用户在多种设备(无论是云基础设施还是移动设备)上定义、训练和部署深度神经网络。该框架具备高度可扩展性,可以进行快速的模型训练,并支持灵活的编程模型和多种语言。

利用 MXNet 可以混合符号和命令式编程,以更大限度提升效率和生产力。该框架的核心是动态依赖性调度程序,可自动即时并行处理符号式操作和命令式操作图形优化层使符号执行速度更快、内存效率更高。

MXNet 库可移植并且规模小巧。它采用 NVIDIA Pascal GPU 加速,可以跨多个 GPU 和多个节点进行扩展,从而更快地训练模型。

为何选择 APACHE MXNET?

Apache MXNet 提供以下主要特性和优势:

混合前端:命令符号混合 Gluon API 提供了一种简单的方法,无需牺牲训练速度即可对模型进行原型设计、训练和部署。开发者仅需几行 Gluon 代码,就能构建线性回归、CNN 和循环 LSTM 模型,以用于物体检测、语音识别和推荐引擎等。

可扩展性:MXNet 从头开始专为云基础设施设计,采用分布式参数服务器,可以使用多个 GPU 或 CPU 实现近线性扩展。深度学习工作负载可跨多个 GPU 进行分配,实现近线性可扩展性和自动扩展。Amazon Web Services 运行的测试发现,在包含 128 个 GPU 的集群中,MXNet 的性能比使用单个 GPU 快 109 倍。正是由于 MXNet 具有扩展到多个 GPU(跨多个主机)的能力,及其开发速度和可移植性,AWS 才选择 MXNet 作为深度学习框架,而不是 TensorFlow、Theano 和 Torch 等其他选择。

生态系统:MXNet 具有适用于计算机视觉、自然语言处理、时间序列等的工具包和库。

语言:MXNet 支持的语言包括 PythonC++、R、Scala、Julia、MatlabJavaScript。MXNet 还可以编译成 C++,生成一种轻量级神经网络模型表征,可以在各种设备上运行,包括 Raspberry Pi 等低功耗设备和云服务器。

MXNET 的工作原理是什么?

MXNet(或“mix-net”)由多学术机构联合创建,并在 Apache Software Foundation 培养而成,旨在混合不同编程方法的优势,以进行深度学习模型开发 – 命令式,明确指定了“如何”执行计算,以及声明式或符号式,主要关注应该执行“什么”。

命令式编程模式

MXNet 的 NDArray 包含命令式编程,是 MXNet 存储和转换数据的主要工具。NDArray 用于将模型的输入和输出表示为多维阵列并对其进行操作。NDArray 类似于 NumPy 的 ndarray,但它们可以在 GPU 上运行,以加速计算。

命令式编程的优势在于,有程序编程背景的开发者对其很熟悉,所以参数更新和交互式调试更自然。

符号式编程模式

神经网络通过对输入参数应用多层嵌套函数来转换输入数据。每一层由一个线性函数和一个非线性变换组成。深度学习的目标是通过计算相对于损失指标的偏导数(梯度),优化这些参数(包括权重和偏差)。在前向传播中,神经网络接受输入参数,并向下一层的节点输出置信度分数,直至到达输出层,在该层计算分数误差。在一个称为梯度下降的过程中,通过反向传播,错误会再次通过网络发送回来,并调整权重,从而改进模型。

图形是由已连接节点(称为顶点)和边缘组成的数据结构。每个现代深度学习框架都基于图形的概念,其中神经网络表示为计算的图形结构。

MXNet 符号式编程允许通过计算图形抽象地定义函数。借助符号式编程,复杂函数首先采用占位符值表示。然后,可以通过将这些函数绑定到实际值来执行这些函数。符号式编程还提供预定义的神经网络层,允许以更少的重复性工作和更好的性能简单表示大型模型。

符号式编程具有以下优势:

计算图形的清晰边界通过后端 MXNet 执行程序提供更多优化机会

更轻松地为神经网络配置指定计算图形

采用 Gluon API 的混合编程模式

MXNet 的主要优势之一是其包含混合编程接口 Gluon,其在保持命令接口和符号接口的功能和优势的同时,弥合了两者之间的差距。Gluon 是一种易于学习的语言,可以生成快速移动模型。借助 Gluon API,您可以使用 NDArray 命令式创建模型。然后,您可以通过混合命令切换到符号模式,加快模型训练和推理速度。在符号模式下,该模型以经优化的图形形式通过后端 MXNet 执行程序以更快速度运行,并且可以轻松导出,用于在不同语言绑定(如 Java 或 C++)中进行推理。

为何 MXNET 在 GPU 上表现更出色

在架构方面,CPU 仅由几个具有大缓存内存的核心组成,一次只可以处理几个软件线程。相比之下,GPU 由数百个核心组成,可以同时处理数千个线程。

由于神经网络由大量相同的神经元构建而成,因此本质上具有高度并行性。这种并行性会自然映射到GPU,因此相比仅依赖 CPU 的训练,计算速度会大幅提高。因此,GPU 已成为训练基于神经网络的大型复杂系统的首选平台。推理运算的并行性质也使其十分宜于在 GPU 上执行。

借助改进的算法、更大的数据集以及 GPU 加速计算,深度学习神经网络已经成为图像识别、语音识别、语言翻译等众多行业不可或缺的工具。开发 MXNet 的目的是提供强大的工具,帮助开发者充分利用 GPU 和云计算的全部功能。

简而言之,使用 MXNet 训练算法的 GPU 越多,任务完成得就越快。随着更多 GPU 的采用,该框架在可扩展性能方面脱颖而出,速度几乎呈线性提升。MXNet 还可以根据可用 GPU 自动扩展,这是其在性能调节方面的一个加分点。

用例

| 智能手机应用程序

MXNet 非常适合图像识别,支持在低功耗且内存有限的平台上运行的模型,这一能力使其成为手机部署的最佳选择。采用 MXNet 构建的模型已经被证明可以提供能在笔记本电脑上运行的高可靠图像识别结果。结合本地和云处理器可以在增强现实、物体和场景识别等领域实现强大的分布式应用。

声音和图像识别应用也为残障人士提供了更多有趣的可能性。例如,移动应用程序可以帮助视障人士更好地感知周围的环境,并帮助听障人士将语音对话转换为文本。

| 自动驾驶汽车

自动驾驶汽车和卡车必须处理大量数据,以做出近乎实时的决策。为支持自动驾驶车辆车队而开发的复杂网络,以前所未有的程度使用分布式处理,来协调从单辆车的制动决策到整个城市的交通管理的所有工作。

TuSimple正在建立一个自主货运网络,通过地图绘制的路线,实现美国西南部的自主货运,其选择 MXNet作为其人工智能模型开发的基础平台。该公司正将自动驾驶技术引入一个长期存在司机短缺问题,以及事故、轮班和燃油效率低下导致的高开销问题的行业。

TuSimple 之所以选择 MXNet,是因为其跨平台可移植性、训练效率以及可扩展性。其中一个因素是将 MXNet 与 TensorFlow 进行比较的基准测试,结果发现在有 8 个 GPU 的环境中,MXNet 速度更快,存储更高效,也更准确。

MXNET 的重要意义

| 数据科学家

机器学习是数据科学领域的重要组成部分。对于不熟悉深度学习模型开发重点的人,MXNet 是一个很好的起点。其广泛的语言支持、Gluon API和灵活性非常适合开发自己的深度学习技能组合的组织。Amazon 的支持可确保 MXNet 能够长期使用,且第三方生态系统将继续发展。许多专家建议将 MXNet 作为未来深入学习更复杂框架的良好起点。

|机器学习研究人员

研究人员经常使用 MXNet 快速进行原型设计,从而更轻松地将研究想法转换为模型并评估结果。它还支持命令式编程,为研究人员提供了更多的计算控制。由于 CPU 和 GPU 的利用率高,与其他框架相比,此特定框架在某些类型的模型上也表现出显著的性能。

| 软件开发者

灵活性是软件工程中很有价值的东西,而 MXNet 是深度学习框架中最灵活的一种。除了其广泛的语言支持之外,它还可以处理各种数据格式(包括 Amazon S3 云存储),并且可以放大或缩小以适合大多数平台。2019 年,MXNet 增加了对优步开发的分布式学习框架Horovod的支持。这为软件工程师在指定部署环境(可能包括从笔记本电脑到云服务器等各种环境)方面提供了更大的灵活性。

带 NVIDIA GPU 的 MXNET

MXNet 推荐使用 NVIDIA GPU 来训练和部署神经网络,因为它提供的计算能力明显高于 CPU,从而大幅提升训练和推理性能。开发者可以通过NGC(NVIDIA GPU 云)轻松开始使用 MXNet。这里,用户可以在其中提取容器,这些容器具有可用于各种任务(例如计算机视觉、自然语言处理等)的预训练模型,且所有依赖项和框架位于一个容器中。借助 NVIDATensorRT,当使用 GPU 时,可显著提升 MXNet 上的推理性能。

面向开发者的 NVIDIA 深度学习

GPU 加速深度学习框架能够为设计和训练自定义深度神经网络带来灵活性,并为 Python 和 C/C++ 等常用编程语言提供编程接口。MXNet、PyTorch、TensorFlow 等广泛使用的深度学习框架依赖于 NVIDIA GPU 加速库,能够提供高性能的多 GPU 加速训练。

NVIDIA GPU 加速的端到端数据科学

基于CUDA-X AI创建的 NVIDIARAPIDS开源软件库套件使您完全能够在 GPU 上执行端到端数据科学和分析流程。此套件依靠 NVIDIA CUDA 基元进行低级别计算优化,但通过用户友好型 Python 接口实现了 GPU 并行化和高带宽显存速度。

借助 RAPIDS GPU DataFrame,数据可以通过一个类似 Pandas 的接口加载到 GPU 上,然后用于各种连接的机器学习和图形分析算法,而无需离开 GPU。这种级别的互操作性是通过 Apache Arrow 这样的库实现的。这可加速端到端流程(从数据准备到机器学习,再到深度学习)。

RAPIDS 支持在许多热门数据科学库之间共享设备内存。这样可将数据保留在 GPU 上,并省去了来回复制主机内存的高昂成本。

原文标题:NVIDIA 大讲堂 | 什么是 APACHE MXNET ?

文章出处:【微信公众号:NVIDIA英伟达】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • NVIDIA
    +关注

    关注

    14

    文章

    5696

    浏览量

    110135
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5283

    浏览量

    136094
  • Apache
    +关注

    关注

    0

    文章

    64

    浏览量

    12943
  • 深度学习
    +关注

    关注

    73

    文章

    5610

    浏览量

    124651

原文标题:NVIDIA 大讲堂 | 什么是 APACHE MXNET ?

文章出处:【微信号:NVIDIA_China,微信公众号:NVIDIA英伟达】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    这个电路干啥的呢?它的工作原理是怎么样?

    很多工程师认为圈起来的这个电路不能工作,我刚开始看到这个电路也是这么认为的!这个圈起来的三极管(PNP)电路到底能不能工作呢,怎么样的工作原理呢?欢迎工程师们在评论区畅所欲言。 APA320-160W+160W.
    发表于 04-15 11:03

    自然语言处理NLP的概念工作原理

    自然语言处理 (NLP) 是人工智能 (AI) 的一个分支,它会教计算机如何理解口头和书面形式的人类语言。自然语言处理将计算语言学与机器学习深度学习相结合来处理语音和文本数据,这些数据也可以与其他类型的数据一起用于开发智能工程
    的头像 发表于 01-29 14:01 616次阅读
    自然语言处理NLP的<b class='flag-5'>概念</b>和<b class='flag-5'>工作原理</b>

    机器学习深度学习中需避免的 7 个常见错误与局限性

    无论你是刚入门还是已经从事人工智能模型相关工作一段时间,机器学习深度学习中都存在一些我们需要时刻关注并铭记的常见错误。如果对这些错误置之不理,日后可能会引发诸多麻烦!只要我们密切关注
    的头像 发表于 01-07 15:37 361次阅读
    机器<b class='flag-5'>学习</b>和<b class='flag-5'>深度</b><b class='flag-5'>学习</b>中需避免的 7 个常见错误与局限性

    穿孔机顶头检测仪 机器视觉深度学习

    ,能适用恶劣工况,在粉尘、高温、氧化皮等恶劣环境中均可正常工作。 测量原理 利用顶头与周围的物质(水、空气、导盘等)红外辐射能量的差异,热成像相机拍摄出清晰的图片,再通过深度学习短时
    发表于 12-22 14:33

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课(11大系列课程,共5000+分钟)

    高清录屏演示 进度梯度设计:前3章(视觉篇)聚焦传统算法,第6章起逐步引入深度学习,避免知识断层 2)实战项目拆解教学 以\"双CCD光学分选案例\"为,采用\"硬件连接
    发表于 12-04 09:28

    【团购】独家全套珍藏!龙哥LabVIEW视觉深度学习实战课程(11大系列课程,共5000+分钟)

    高清录屏演示 进度梯度设计:前3章(视觉篇)聚焦传统算法,第6章起逐步引入深度学习,避免知识断层 2)实战项目拆解教学 以\"双CCD光学分选案例\"为,采用\"硬件连接
    发表于 12-03 13:50

    腾柱无桥PFC电路的工作原理和拓扑结构

    以单极性SPWM调制方式为,说明图腾柱PFC的工作原理。此处仅以正向AC-DC说明。后续会专门介绍DC-AC的功能介绍。
    的头像 发表于 11-26 14:30 4330次阅读
    腾柱无桥PFC电路的<b class='flag-5'>工作原理</b>和拓扑结构

    如何在机器视觉中部署深度学习神经网络

    图 1:基于深度学习的目标检测可定位已训练的目标类别,并通过矩形框(边界框)对其进行标识。 在讨论人工智能(AI)或深度学习时,经常会出现“神经网络”、“黑箱”、“标注”等术语。这些
    的头像 发表于 09-10 17:38 1066次阅读
    如何在机器视觉中部署<b class='flag-5'>深度</b><b class='flag-5'>学习</b>神经网络

    广州唯创电子语音芯片的工作原理与应用解析

    、车载导航、医疗器械等领域提供了高效的语音解决方案。本文将以唯创电子语音芯片为,深入解析其工作原理及技术特点。一、语音芯片的核心工作原理语音芯片的工作流程可分为
    的头像 发表于 08-28 08:33 869次阅读
    广州唯创电子语音芯片的<b class='flag-5'>工作原理</b>与应用解析

    解析基带和射频的工作原理

    在现代通信技术中,基带和射频是两个核心概念,它们共同构成了无线通信的基础。尽管这两个术语频繁出现在技术文档和行业讨论中,但其具体功能和技术细节却常常被误解。本文将以移动通信为,深入解析基带和射频的工作原理及其在通信链路中的作用
    的头像 发表于 08-06 09:28 3027次阅读
    解析基带和射频的<b class='flag-5'>工作原理</b>

    使用NVIDIA GPU加速Apache Spark中Parquet数据扫描

    的方式组织数据,这使得 Parquet 在查询时仅读取所需的列,而无需扫描整行数据,即可实现高性能的查询和分析。高效的数据布局使 Parquet 在现代分析生态系统中成为了受欢迎的选择,尤其是在 Apache Spark 工作负载中。
    的头像 发表于 07-23 10:52 1242次阅读
    使用NVIDIA GPU加速<b class='flag-5'>Apache</b> Spark中Parquet数据扫描

    语音控制模块工作原理

    ,才能够发出正确的指令。 语音芯片控制模块是实现 “语音指令 - 设备响应” 的核心组件,其工作原理可拆解为信号采集、处理、识别及指令执行的完整链路,下面将以WTK69000为给大家分享一下整个流程的工作原理。 一、语音信号采
    的头像 发表于 06-17 11:49 1706次阅读
    语音控制模块<b class='flag-5'>工作原理</b>

    恒讯科技深度解析:阿帕奇服务器工作原理

    阿帕奇服务器(Apache HTTP Server)作为全球使用最广泛的开源Web服务器软件,其工作原理融合了多进程架构、模块化设计与高效的请求处理流程。以下从核心机制、运行模式及优化策略三方面解析
    的头像 发表于 05-22 09:37 2125次阅读

    水质常规五参数探头工作原理

    在水环境监测领域,水质常规五参数(pH、溶解氧、电导率、浊度、温度)探头对于准确把握水质状况意义重大。本文以DX-W100-1在线多参数水质传感器为,深入剖析这些参数探头的工作原理。一、pH探头
    的头像 发表于 05-13 17:07 1645次阅读
    水质常规五参数探头<b class='flag-5'>工作原理</b>