開始在 Amazon Linux 上使用 Apache MXNet
開始在 Ubuntu 上使用 Apache MXNet

Apache MXNet 是一種精簡、彈性且具備超強可擴展性的深度學習架構,它支援深度學習模型中的各種先進技術,包括卷積神經網路 (CNN) 和長短期記憶體網路 (LSTM)。此架構源自於學術界,並由多所頂尖大學的研究人員透過協作一起努力完成。它旨在優化電腦視覺、語音和語言處理及理解、生成模型、並行神經網路和遞歸神經網路。

MXNet 可讓您在大規模雲端基礎設施到行動和連線裝置等各式各樣的使用案例定義、訓練和部署網路。它提供非常彈性且支援多種常用語言的環境,還具備使用指令式和符號式程式設計結構的功能。MXNet 也很輕量,可非常有效率地在多個 GPU 和多部機器之間擴展,這對訓練雲端大型資料集非常有用。

您可以啟動 AWS 深度學習 AMI (Amazon LinuxUbuntu 均提供) 輕鬆地開始使用 AWS 上的 Apache MXNet。

使 Apache MXNet 專案更加完善

參與 GitHub

在 GitHub 專案頁面取得範本程式碼、筆記本和教學內容。

GitHub-Mark-120px-plus
CMU
Sigopt
logo-intel
Nvidia
簡便

程式設計能力

簡化網路定義並使用您已熟知的語言

耐久

可移植性

有效使用記憶體,使模型可在各種裝置和平台上執行

可擴展性

 可擴展性

可在多個 GPU 和主機之間擴展以快速訓練精細的大型模型

使用 Apache MXNet 可讓您混搭指令式和符號式語言。事實上,"MXNet" 這個名稱來自「混合網路」。這表示您可以透過符號式執行程式的優化功能和指令式語言的彈性功能 (像是反覆迴圈和參數更新) 來操控網路層。由於這種混合的性質,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 模型能夠在極少量的記憶體中運作。例如,一千層的網路只需要不到 4 GB 的儲存。此架構還可移植到不同的平台。核心程式庫 (和所有相依項) 可放入單一 C++ 原始檔案,且可針對 iOS 和 Android 進行編譯。事實上,使用 JavaScript,甚至可以在瀏覽器中執行。擁有這種彈性表示您可以在各種非常不同的使用案例部署模型,以接觸更廣泛的使用者。 

portability-cloud

雲端

portability-mobile

行動

portability-browser

瀏覽器

portability-devices

連線裝置

Apache MXNet 建立在動態相依排程器上,可以序號剖析資料相依性,並立即自動平行處理宣告式和指令式操作。以此為基礎的圖形優化層,讓宣告式執行的速度更快,以及記憶體的使用更有效率。

這種自動平行處理功能讓 MXNet 的擴展非常有效率。例如,我們訓練熱門的影像分析演算法 Inception v3,利用增加的 EC2 P2 GPU 後端執行個體數量來衡量 MXNet 的效率。

mxnet-scale-story-1

紅線代表非常有效率,GPU 數量增加一倍速度也隨著倍增。MXNet 輸送量增加的倍數幾乎與使用的 GPU 數量相同。在有 16 個 GPU 的單一執行個體,Apache MXNet 的效率可達 91%。

不過,對於大型網路而言,最好在 P2 執行個體叢集之間進行擴展。在這種情況下執行相同的基準,當 GPU 數量大幅增加時只會看到效率微幅降低。

mxnet-scale-story-2

不過,不要完全依賴我們所說的。使用雲端的好處之一就是,您可以使用自己的程式碼輕鬆進行任何測試。我們已在 GitHub 提供基準供大眾使用。我們鼓勵您深入研究以了解其效能,並執行該基準以取得自己的結果。您也可以使用我們的 AWS CloudFormation 範本快速取得您所需的容量。 

開始使用 AWS 上的 Apache MXNet 非常簡單,只要前往 AWS Marketplace,然後啟動 AWS 深度學習 AMI 即可。

該 AMI 提供最新、最穩定的 MXNet 組建,以及其他眾多免費的熱門深度學習架構和工具。您只需支付使用的 EC2 時間的費用。