0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

APACHE MXNET深度學(xué)習(xí)框架的概念、工作原理及用例

NVIDIA英偉達 ? 來源:NVIDIA英偉達 ? 作者:NVIDIA英偉達 ? 2022-06-17 09:23 ? 次閱讀

Apache MXNet 是一個靈活且可擴展的深度學(xué)習(xí)框架,支持多種深度學(xué)習(xí)模型、編程語言,并且有一個開發(fā)接口,因其易用性而受到高度重視。

什么是 APACHE MXNET?

MXNet 是開源深度學(xué)習(xí)框架,允許用戶在多種設(shè)備(無論是云基礎(chǔ)設(shè)施還是移動設(shè)備)上定義、訓(xùn)練和部署深度神經(jīng)網(wǎng)絡(luò)。該框架具備高度可擴展性,可以進行快速的模型訓(xùn)練,并支持靈活的編程模型和多種語言。

利用 MXNet 可以混合符號和命令式編程,以更大限度提升效率和生產(chǎn)力。該框架的核心是動態(tài)依賴性調(diào)度程序,可自動即時并行處理符號式操作和命令式操作圖形優(yōu)化層使符號執(zhí)行速度更快、內(nèi)存效率更高。

MXNet 庫可移植并且規(guī)模小巧。它采用 NVIDIA Pascal GPU 加速,可以跨多個 GPU 和多個節(jié)點進行擴展,從而更快地訓(xùn)練模型。

為何選擇 APACHE MXNET?

Apache MXNet 提供以下主要特性和優(yōu)勢:

混合前端:命令符號混合 Gluon API 提供了一種簡單的方法,無需犧牲訓(xùn)練速度即可對模型進行原型設(shè)計、訓(xùn)練和部署。開發(fā)者僅需幾行 Gluon 代碼,就能構(gòu)建線性回歸、CNN 和循環(huán) LSTM 模型,以用于物體檢測、語音識別和推薦引擎等。

可擴展性:MXNet 從頭開始專為云基礎(chǔ)設(shè)施設(shè)計,采用分布式參數(shù)服務(wù)器,可以使用多個 GPU 或 CPU 實現(xiàn)近線性擴展。深度學(xué)習(xí)工作負載可跨多個 GPU 進行分配,實現(xiàn)近線性可擴展性和自動擴展。Amazon Web Services 運行的測試發(fā)現(xiàn),在包含 128 個 GPU 的集群中,MXNet 的性能比使用單個 GPU 快 109 倍。正是由于 MXNet 具有擴展到多個 GPU(跨多個主機)的能力,及其開發(fā)速度和可移植性,AWS 才選擇 MXNet 作為深度學(xué)習(xí)框架,而不是 TensorFlow、Theano 和 Torch 等其他選擇。

生態(tài)系統(tǒng):MXNet 具有適用于計算機視覺、自然語言處理、時間序列等的工具包和庫。

語言:MXNet 支持的語言包括 PythonC++、R、Scala、Julia、MatlabJavaScript。MXNet 還可以編譯成 C++,生成一種輕量級神經(jīng)網(wǎng)絡(luò)模型表征,可以在各種設(shè)備上運行,包括 Raspberry Pi 等低功耗設(shè)備和云服務(wù)器。

MXNET 的工作原理是什么?

MXNet(或“mix-net”)由多學(xué)術(shù)機構(gòu)聯(lián)合創(chuàng)建,并在 Apache Software Foundation 培養(yǎng)而成,旨在混合不同編程方法的優(yōu)勢,以進行深度學(xué)習(xí)模型開發(fā) – 命令式,明確指定了“如何”執(zhí)行計算,以及聲明式或符號式,主要關(guān)注應(yīng)該執(zhí)行“什么”。

命令式編程模式

MXNet 的 NDArray 包含命令式編程,是 MXNet 存儲和轉(zhuǎn)換數(shù)據(jù)的主要工具。NDArray 用于將模型的輸入和輸出表示為多維陣列并對其進行操作。NDArray 類似于 NumPy 的 ndarray,但它們可以在 GPU 上運行,以加速計算。

命令式編程的優(yōu)勢在于,有程序編程背景的開發(fā)者對其很熟悉,所以參數(shù)更新和交互式調(diào)試更自然。

符號式編程模式

神經(jīng)網(wǎng)絡(luò)通過對輸入?yún)?shù)應(yīng)用多層嵌套函數(shù)來轉(zhuǎn)換輸入數(shù)據(jù)。每一層由一個線性函數(shù)和一個非線性變換組成。深度學(xué)習(xí)的目標(biāo)是通過計算相對于損失指標(biāo)的偏導(dǎo)數(shù)(梯度),優(yōu)化這些參數(shù)(包括權(quán)重和偏差)。在前向傳播中,神經(jīng)網(wǎng)絡(luò)接受輸入?yún)?shù),并向下一層的節(jié)點輸出置信度分?jǐn)?shù),直至到達輸出層,在該層計算分?jǐn)?shù)誤差。在一個稱為梯度下降的過程中,通過反向傳播,錯誤會再次通過網(wǎng)絡(luò)發(fā)送回來,并調(diào)整權(quán)重,從而改進模型。

圖形是由已連接節(jié)點(稱為頂點)和邊緣組成的數(shù)據(jù)結(jié)構(gòu)。每個現(xiàn)代深度學(xué)習(xí)框架都基于圖形的概念,其中神經(jīng)網(wǎng)絡(luò)表示為計算的圖形結(jié)構(gòu)。

MXNet 符號式編程允許通過計算圖形抽象地定義函數(shù)。借助符號式編程,復(fù)雜函數(shù)首先采用占位符值表示。然后,可以通過將這些函數(shù)綁定到實際值來執(zhí)行這些函數(shù)。符號式編程還提供預(yù)定義的神經(jīng)網(wǎng)絡(luò)層,允許以更少的重復(fù)性工作和更好的性能簡單表示大型模型。

符號式編程具有以下優(yōu)勢:

計算圖形的清晰邊界通過后端 MXNet 執(zhí)行程序提供更多優(yōu)化機會

更輕松地為神經(jīng)網(wǎng)絡(luò)配置指定計算圖形

采用 Gluon API 的混合編程模式

MXNet 的主要優(yōu)勢之一是其包含混合編程接口 Gluon,其在保持命令接口和符號接口的功能和優(yōu)勢的同時,彌合了兩者之間的差距。Gluon 是一種易于學(xué)習(xí)的語言,可以生成快速移動模型。借助 Gluon API,您可以使用 NDArray 命令式創(chuàng)建模型。然后,您可以通過混合命令切換到符號模式,加快模型訓(xùn)練和推理速度。在符號模式下,該模型以經(jīng)優(yōu)化的圖形形式通過后端 MXNet 執(zhí)行程序以更快速度運行,并且可以輕松導(dǎo)出,用于在不同語言綁定(如 Java 或 C++)中進行推理。

為何 MXNET 在 GPU 上表現(xiàn)更出色

在架構(gòu)方面,CPU 僅由幾個具有大緩存內(nèi)存的核心組成,一次只可以處理幾個軟件線程。相比之下,GPU 由數(shù)百個核心組成,可以同時處理數(shù)千個線程。

由于神經(jīng)網(wǎng)絡(luò)由大量相同的神經(jīng)元構(gòu)建而成,因此本質(zhì)上具有高度并行性。這種并行性會自然映射到GPU,因此相比僅依賴 CPU 的訓(xùn)練,計算速度會大幅提高。因此,GPU 已成為訓(xùn)練基于神經(jīng)網(wǎng)絡(luò)的大型復(fù)雜系統(tǒng)的首選平臺。推理運算的并行性質(zhì)也使其十分宜于在 GPU 上執(zhí)行。

借助改進的算法、更大的數(shù)據(jù)集以及 GPU 加速計算,深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)已經(jīng)成為圖像識別、語音識別、語言翻譯等眾多行業(yè)不可或缺的工具。開發(fā) MXNet 的目的是提供強大的工具,幫助開發(fā)者充分利用 GPU 和云計算的全部功能。

簡而言之,使用 MXNet 訓(xùn)練算法的 GPU 越多,任務(wù)完成得就越快。隨著更多 GPU 的采用,該框架在可擴展性能方面脫穎而出,速度幾乎呈線性提升。MXNet 還可以根據(jù)可用 GPU 自動擴展,這是其在性能調(diào)節(jié)方面的一個加分點。

用例

| 智能手機應(yīng)用程序

MXNet 非常適合圖像識別,支持在低功耗且內(nèi)存有限的平臺上運行的模型,這一能力使其成為手機部署的最佳選擇。采用 MXNet 構(gòu)建的模型已經(jīng)被證明可以提供能在筆記本電腦上運行的高可靠圖像識別結(jié)果。結(jié)合本地和云處理器可以在增強現(xiàn)實、物體和場景識別等領(lǐng)域?qū)崿F(xiàn)強大的分布式應(yīng)用。

聲音和圖像識別應(yīng)用也為殘障人士提供了更多有趣的可能性。例如,移動應(yīng)用程序可以幫助視障人士更好地感知周圍的環(huán)境,并幫助聽障人士將語音對話轉(zhuǎn)換為文本。

| 自動駕駛汽車

自動駕駛汽車和卡車必須處理大量數(shù)據(jù),以做出近乎實時的決策。為支持自動駕駛車輛車隊而開發(fā)的復(fù)雜網(wǎng)絡(luò),以前所未有的程度使用分布式處理,來協(xié)調(diào)從單輛車的制動決策到整個城市的交通管理的所有工作。

TuSimple正在建立一個自主貨運網(wǎng)絡(luò),通過地圖繪制的路線,實現(xiàn)美國西南部的自主貨運,其選擇 MXNet作為其人工智能模型開發(fā)的基礎(chǔ)平臺。該公司正將自動駕駛技術(shù)引入一個長期存在司機短缺問題,以及事故、輪班和燃油效率低下導(dǎo)致的高開銷問題的行業(yè)。

TuSimple 之所以選擇 MXNet,是因為其跨平臺可移植性、訓(xùn)練效率以及可擴展性。其中一個因素是將 MXNet 與 TensorFlow 進行比較的基準(zhǔn)測試,結(jié)果發(fā)現(xiàn)在有 8 個 GPU 的環(huán)境中,MXNet 速度更快,存儲更高效,也更準(zhǔn)確。

MXNET 的重要意義

| 數(shù)據(jù)科學(xué)家

機器學(xué)習(xí)是數(shù)據(jù)科學(xué)領(lǐng)域的重要組成部分。對于不熟悉深度學(xué)習(xí)模型開發(fā)重點的人,MXNet 是一個很好的起點。其廣泛的語言支持、Gluon API和靈活性非常適合開發(fā)自己的深度學(xué)習(xí)技能組合的組織。Amazon 的支持可確保 MXNet 能夠長期使用,且第三方生態(tài)系統(tǒng)將繼續(xù)發(fā)展。許多專家建議將 MXNet 作為未來深入學(xué)習(xí)更復(fù)雜框架的良好起點。

|機器學(xué)習(xí)研究人員

研究人員經(jīng)常使用 MXNet 快速進行原型設(shè)計,從而更輕松地將研究想法轉(zhuǎn)換為模型并評估結(jié)果。它還支持命令式編程,為研究人員提供了更多的計算控制。由于 CPU 和 GPU 的利用率高,與其他框架相比,此特定框架在某些類型的模型上也表現(xiàn)出顯著的性能。

| 軟件開發(fā)者

靈活性是軟件工程中很有價值的東西,而 MXNet 是深度學(xué)習(xí)框架中最靈活的一種。除了其廣泛的語言支持之外,它還可以處理各種數(shù)據(jù)格式(包括 Amazon S3 云存儲),并且可以放大或縮小以適合大多數(shù)平臺。2019 年,MXNet 增加了對優(yōu)步開發(fā)的分布式學(xué)習(xí)框架Horovod的支持。這為軟件工程師在指定部署環(huán)境(可能包括從筆記本電腦到云服務(wù)器等各種環(huán)境)方面提供了更大的靈活性。

帶 NVIDIA GPU 的 MXNET

MXNet 推薦使用 NVIDIA GPU 來訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò),因為它提供的計算能力明顯高于 CPU,從而大幅提升訓(xùn)練和推理性能。開發(fā)者可以通過NGC(NVIDIA GPU 云)輕松開始使用 MXNet。這里,用戶可以在其中提取容器,這些容器具有可用于各種任務(wù)(例如計算機視覺、自然語言處理等)的預(yù)訓(xùn)練模型,且所有依賴項和框架位于一個容器中。借助 NVIDATensorRT,當(dāng)使用 GPU 時,可顯著提升 MXNet 上的推理性能。

面向開發(fā)者的 NVIDIA 深度學(xué)習(xí)

GPU 加速深度學(xué)習(xí)框架能夠為設(shè)計和訓(xùn)練自定義深度神經(jīng)網(wǎng)絡(luò)帶來靈活性,并為 Python 和 C/C++ 等常用編程語言提供編程接口。MXNet、PyTorch、TensorFlow 等廣泛使用的深度學(xué)習(xí)框架依賴于 NVIDIA GPU 加速庫,能夠提供高性能的多 GPU 加速訓(xùn)練。

NVIDIA GPU 加速的端到端數(shù)據(jù)科學(xué)

基于CUDA-X AI創(chuàng)建的 NVIDIARAPIDS開源軟件庫套件使您完全能夠在 GPU 上執(zhí)行端到端數(shù)據(jù)科學(xué)和分析流程。此套件依靠 NVIDIA CUDA 基元進行低級別計算優(yōu)化,但通過用戶友好型 Python 接口實現(xiàn)了 GPU 并行化和高帶寬顯存速度。

借助 RAPIDS GPU DataFrame,數(shù)據(jù)可以通過一個類似 Pandas 的接口加載到 GPU 上,然后用于各種連接的機器學(xué)習(xí)和圖形分析算法,而無需離開 GPU。這種級別的互操作性是通過 Apache Arrow 這樣的庫實現(xiàn)的。這可加速端到端流程(從數(shù)據(jù)準(zhǔn)備到機器學(xué)習(xí),再到深度學(xué)習(xí))。

RAPIDS 支持在許多熱門數(shù)據(jù)科學(xué)庫之間共享設(shè)備內(nèi)存。這樣可將數(shù)據(jù)保留在 GPU 上,并省去了來回復(fù)制主機內(nèi)存的高昂成本。

原文標(biāo)題:NVIDIA 大講堂 | 什么是 APACHE MXNET ?

文章出處:【微信公眾號:NVIDIA英偉達】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5274

    瀏覽量

    105966
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4923

    瀏覽量

    130840
  • Apache
    +關(guān)注

    關(guān)注

    0

    文章

    64

    瀏覽量

    12676
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5557

    瀏覽量

    122601

原文標(biāo)題:NVIDIA 大講堂 | 什么是 APACHE MXNET ?

文章出處:【微信號:NVIDIA_China,微信公眾號:NVIDIA英偉達】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    恒訊科技深度解析:阿帕奇服務(wù)器工作原理

    阿帕奇服務(wù)器(Apache HTTP Server)作為全球使用最廣泛的開源Web服務(wù)器軟件,其工作原理融合了多進程架構(gòu)、模塊化設(shè)計與高效的請求處理流程。以下從核心機制、運行模式及優(yōu)化策略三方面解析
    的頭像 發(fā)表于 05-22 09:37 ?178次閱讀

    在OpenVINO?工具套件的深度學(xué)習(xí)工作臺中無法導(dǎo)出INT8模型怎么解決?

    無法在 OpenVINO? 工具套件的深度學(xué)習(xí) (DL) 工作臺中導(dǎo)出 INT8 模型
    發(fā)表于 03-06 07:54

    如何排除深度學(xué)習(xí)工作臺上量化OpenVINO?的特定層?

    無法確定如何排除要在深度學(xué)習(xí)工作臺上量化OpenVINO?特定層
    發(fā)表于 03-06 07:31

    4G模組SD卡接口編程:深度學(xué)習(xí)

    今天我們需要深度學(xué)習(xí)的是4G模組SD卡接口編程,以我常用的模組Air724UG為,分享給大家。
    的頭像 發(fā)表于 11-20 23:14 ?648次閱讀
    4G模組SD卡接口編程:<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>

    NPU在深度學(xué)習(xí)中的應(yīng)用

    設(shè)計的硬件加速器,它在深度學(xué)習(xí)中的應(yīng)用日益廣泛。 1. NPU的基本概念 NPU是一種專門針對深度學(xué)習(xí)算法優(yōu)化的處理器,它與傳統(tǒng)的CPU和G
    的頭像 發(fā)表于 11-14 15:17 ?1799次閱讀

    Pytorch深度學(xué)習(xí)訓(xùn)練的方法

    掌握這 17 種方法,最省力的方式,加速你的 Pytorch 深度學(xué)習(xí)訓(xùn)練。
    的頭像 發(fā)表于 10-28 14:05 ?600次閱讀
    Pytorch<b class='flag-5'>深度</b><b class='flag-5'>學(xué)習(xí)</b>訓(xùn)練的方法

    NVIDIA推出全新深度學(xué)習(xí)框架fVDB

    在 SIGGRAPH 上推出的全新深度學(xué)習(xí)框架可用于打造自動駕駛汽車、氣候科學(xué)和智慧城市的 AI 就緒型虛擬表示。
    的頭像 發(fā)表于 08-01 14:31 ?1072次閱讀

    PyTorch深度學(xué)習(xí)開發(fā)環(huán)境搭建指南

    PyTorch作為一種流行的深度學(xué)習(xí)框架,其開發(fā)環(huán)境的搭建對于深度學(xué)習(xí)研究者和開發(fā)者來說至關(guān)重要。在Windows操作系統(tǒng)上搭建PyTorc
    的頭像 發(fā)表于 07-16 18:29 ?2362次閱讀

    前饋神經(jīng)網(wǎng)絡(luò)的工作原理和應(yīng)用

    前饋神經(jīng)網(wǎng)絡(luò)(Feedforward Neural Network, FNN),作為最基本且應(yīng)用廣泛的一種人工神經(jīng)網(wǎng)絡(luò)模型,其工作原理和結(jié)構(gòu)對于理解深度學(xué)習(xí)及人工智能領(lǐng)域至關(guān)重要。本文將從前饋神經(jīng)網(wǎng)絡(luò)的基本原理出發(fā),詳細闡述其結(jié)
    的頭像 發(fā)表于 07-08 11:28 ?2986次閱讀

    深度神經(jīng)網(wǎng)絡(luò)的工作原理、特點及應(yīng)用范圍

    深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, DNNs)作為機器學(xué)習(xí)領(lǐng)域的一個重要分支,近年來在多個領(lǐng)域取得了顯著的進展和廣泛的應(yīng)用。其強大的數(shù)據(jù)處理和模式識別能力,使得DNNs成為解決復(fù)雜問題的關(guān)鍵工具。本文將從DNNs的
    的頭像 發(fā)表于 07-04 13:25 ?2757次閱讀

    人工智能、機器學(xué)習(xí)深度學(xué)習(xí)是什么

    在科技日新月異的今天,人工智能(Artificial Intelligence, AI)、機器學(xué)習(xí)(Machine Learning, ML)和深度學(xué)習(xí)(Deep Learning, DL)已成為
    的頭像 發(fā)表于 07-03 18:22 ?2602次閱讀

    深度學(xué)習(xí)常用的Python庫

    深度學(xué)習(xí)常用的Python庫,包括核心庫、可視化工具、深度學(xué)習(xí)框架、自然語言處理庫以及數(shù)據(jù)抓取庫等,并詳細分析它們的功能和優(yōu)勢。
    的頭像 發(fā)表于 07-03 16:04 ?1112次閱讀

    深度學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用

    到自然語言處理,深度學(xué)習(xí)和CNN正逐步改變著我們的生活方式。本文將深入探討深度學(xué)習(xí)與卷積神經(jīng)網(wǎng)絡(luò)的基本概念
    的頭像 發(fā)表于 07-02 18:19 ?1381次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)的基本概念工作原理

    工作原理,在處理圖像數(shù)據(jù)時展現(xiàn)出了卓越的性能。本文將從卷積神經(jīng)網(wǎng)絡(luò)的基本概念、結(jié)構(gòu)組成、工作原理以及實際應(yīng)用等多個方面進行深入解讀。
    的頭像 發(fā)表于 07-02 18:17 ?5145次閱讀

    TensorFlow與PyTorch深度學(xué)習(xí)框架的比較與選擇

    深度學(xué)習(xí)作為人工智能領(lǐng)域的一個重要分支,在過去十年中取得了顯著的進展。在構(gòu)建和訓(xùn)練深度學(xué)習(xí)模型的過程中,深度
    的頭像 發(fā)表于 07-02 14:04 ?1583次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品