Apache MXNet - 工具包和生態系統



為了支援跨多個領域的深度學習應用的研究和開發,Apache MXNet 為我們提供了豐富的工具包、庫等等生態系統。讓我們來探索它們 -

工具包

以下是 MXNet 提供的一些最常用和最重要的工具包 -

GluonCV

顧名思義,GluonCV 是一個由 MXNet 支援的用於計算機視覺的 Gluon 工具包。它提供了計算機視覺 (CV) 領域最先進的深度學習 (DL) 演算法的實現。藉助 GluonCV 工具包,工程師、研究人員和學生可以輕鬆地驗證新的想法和學習 CV。

下面列出了一些 **GluonCV 的特性** -

  • 它提供了用於復現最新研究報告的最先進結果的訓練指令碼。

  • 170 多個高質量的預訓練模型。

  • 採用靈活的開發模式。

  • GluonCV 易於最佳化。我們可以在不保留重量級深度學習框架的情況下部署它。

  • 它提供了精心設計的 API,極大地降低了實現的複雜性。

  • 社群支援。

  • 易於理解的實現。

以下是 GluonCV 工具包 **支援的應用**

  • 影像分類

  • 目標檢測

  • 語義分割

  • 例項分割

  • 姿態估計

  • 影片動作識別

我們可以使用 pip 如下安裝 GluonCV -

pip install --upgrade mxnet gluoncv

GluonNLP

顧名思義,GluonNLP 是一個由 MXNet 支援的用於自然語言處理 (NLP) 的 Gluon 工具包。它提供了 NLP 領域最先進的深度學習 (DL) 模型的實現。

藉助 GluonNLP 工具包,工程師、研究人員和學生可以構建文字資料管道和模型的模組。基於這些模型,他們可以快速原型化研究想法和產品。

下面列出了一些 GluonNLP 的特性

  • 它提供了用於復現最新研究報告的最先進結果的訓練指令碼。

  • 一組用於常見 NLP 任務的預訓練模型。

  • 它提供了精心設計的 API,極大地降低了實現的複雜性。

  • 社群支援。

  • 它還提供教程來幫助您開始新的 NLP 任務。

以下是我們可以使用 GluonNLP 工具包實現的 NLP 任務 -

  • 詞嵌入

  • 語言模型

  • 機器翻譯

  • 文字分類

  • 情感分析

  • 自然語言推理

  • 文字生成

  • 依存句法分析

  • 命名實體識別

  • 意圖分類和槽位標註

我們可以使用 pip 如下安裝 GluonNLP -

pip install --upgrade mxnet gluonnlp

GluonTS

顧名思義,GluonTS 是一個由 MXNet 支援的用於機率時間序列建模的 Gluon 工具包。

它提供以下功能 -

  • 準備好進行訓練的最先進 (SOTA) 深度學習模型。

  • 用於載入和迭代時間序列資料集的實用程式。

  • 構建模組以定義您自己的模型。

藉助 GluonTS 工具包,工程師、研究人員和學生可以在自己的資料上訓練和評估任何內建模型,快速嘗試不同的解決方案,併為他們的時間序列任務找到解決方案。

他們還可以使用提供的抽象和構建模組來建立自定義時間序列模型,並將其快速與基線演算法進行比較。

我們可以使用 pip 如下安裝 GluonTS -

pip install gluonts

GluonFR

顧名思義,它是一個 Apache MXNet Gluon 人臉識別 (FR) 工具包。它提供以下功能 -

  • 人臉識別領域最先進 (SOTA) 的深度學習模型。

  • SoftmaxCrossEntropyLoss、ArcLoss、TripletLoss、RingLoss、CosLoss/AMsoftmax、L2-Softmax、A-Softmax、CenterLoss、ContrastiveLoss 和 LGM Loss 等的實現。

為了安裝 Gluon Face,我們需要 Python 3.5 或更高版本。我們還需要首先安裝 GluonCV 和 MXNet,如下所示 -

pip install gluoncv --pre
pip install mxnet-mkl --pre --upgrade
pip install mxnet-cuXXmkl --pre –upgrade # if cuda XX is installed

安裝完依賴項後,可以使用以下命令安裝 GluonFR -

從原始碼安裝

pip install git+https://github.com/THUFutureLab/gluon-face.git@master

Pip 安裝

pip install gluonfr

生態系統

現在讓我們探索 MXNet 豐富的庫、包和框架 -

Coach RL

Coach 是英特爾 AI 實驗室建立的一個 Python 強化學習 (RL) 框架。它可以輕鬆地進行最先進的 RL 演算法實驗。Coach RL 支援 Apache MXNet 作為後端,並允許簡單地整合新環境以解決問題。

為了輕鬆擴充套件和重用現有元件,Coach RL 將基本的強化學習元件(如演算法、環境、神經網路架構、探索策略)很好地解耦。

以下是 Coach RL 框架的代理和支援的演算法 -

價值最佳化代理

  • 深度 Q 網路 (DQN)

  • 雙深度 Q 網路 (DDQN)

  • 雙重 Q 網路

  • 混合蒙特卡羅 (MMC)

  • 持久優勢學習 (PAL)

  • 分類深度 Q 網路 (C51)

  • 分位數迴歸深度 Q 網路 (QR-DQN)

  • N 步 Q 學習

  • 神經情景控制 (NEC)

  • 標準化優勢函式 (NAF)

  • 彩虹

策略最佳化代理

  • 策略梯度 (PG)

  • 非同步優勢行動者評論家 (A3C)

  • 深度確定性策略梯度 (DDPG)

  • 近端策略最佳化 (PPO)

  • 裁剪近端策略最佳化 (CPPO)

  • 廣義優勢估計 (GAE)

  • 具有經驗回放的樣本高效行動者評論家 (ACER)

  • 軟行動者評論家 (SAC)

  • 雙延遲深度確定性策略梯度 (TD3)

通用代理

  • 直接未來預測 (DFP)

模仿學習代理

  • 行為克隆 (BC)

  • 條件模仿學習

分層強化學習代理

  • 分層行動者評論家 (HAC)

深度相簿

深度相簿 (DGL) 由紐約大學和 AWS 上海團隊開發,是一個 Python 包,它在 MXNet 之上提供了圖神經網路 (GNN) 的簡單實現。它還在其他現有的主要深度學習庫(如 PyTorch、Gluon 等)之上提供了 GNN 的簡單實現。

深度相簿是一個免費軟體。它可以在 Ubuntu 16.04 之後的 Linux 發行版、macOS X 和 Windows 7 或更高版本上使用。它還需要 Python 3.5 版本或更高版本。

以下是 DGL 的特性 -

**無遷移成本** - 使用 DGL 沒有遷移成本,因為它構建在流行的現有深度學習框架之上。

**訊息傳遞** - DGL 提供訊息傳遞,並且可以對其進行靈活的控制。訊息傳遞的範圍從低階操作(如沿著選定的邊傳送)到高階控制(如圖範圍內的特徵更新)。

**平滑的學習曲線** - DGL 非常易於學習和使用,因為功能強大的使用者定義函式既靈活又易於使用。

**透明的速度最佳化** - DGL 透過自動批處理計算和稀疏矩陣乘法來提供透明的速度最佳化。

**高效能** - 為了獲得最大效率,DGL 會自動將 DNN(深度神經網路)訓練在一個或多個圖上一起進行批處理。

**簡單友好的介面** - DGL 為我們提供了簡單友好的介面,用於訪問邊特徵以及操作圖結構。

InsightFace

InsightFace 是一個用於人臉分析的深度學習工具包,它提供了由 MXNet 支援的計算機視覺領域最先進 (SOTA) 的人臉分析演算法的實現。它提供 -

  • 高質量的大量預訓練模型。

  • 最先進 (SOTA) 的訓練指令碼。

  • InsightFace 易於最佳化。我們可以在不保留重量級深度學習框架的情況下部署它。

  • 它提供了精心設計的 API,極大地降低了實現的複雜性。

  • 構建模組以定義您自己的模型。

我們可以使用 pip 如下安裝 InsightFace -

pip install --upgrade insightface

請注意,在安裝 InsightFace 之前,請根據您的系統配置安裝正確的 MXNet 包。

Keras-MXNet

眾所周知,Keras 是一個用 Python 編寫的較高層次的神經網路 (NN) API,Keras-MXNet 為我們提供了 Keras 的後端支援。它可以在高效能和可擴充套件的 Apache MXNet 深度學習框架之上執行。

Keras-MXNet 的特性如下所述 -

  • 允許使用者輕鬆、流暢、快速地進行原型設計。這一切都透過使用者友好性、模組化和可擴充套件性來實現。

  • 支援卷積神經網路 (CNN) 和迴圈神經網路 (RNN),以及兩者的組合。

  • 在中央處理單元 (CPU) 和圖形處理單元 (GPU) 上都能完美執行。

  • 可以在一個或多個 GPU 上執行。

為了使用此後端,您首先需要安裝 keras-mxnet,如下所示 -

pip install keras-mxnet

現在,如果您使用的是 GPU,則安裝支援 CUDA 9 的 MXNet,如下所示 -

pip install mxnet-cu90

但如果您只使用 CPU,則安裝基本 MXNet,如下所示 -

pip install mxnet

MXBoard

MXBoard 是一個用 Python 編寫的日誌記錄工具,用於記錄 MXNet 資料幀並在 TensorBoard 中顯示。換句話說,MXBoard 旨在遵循 tensorboard-pytorch API。它支援 TensorBoard 中的大多數資料型別。

其中一些列在下面 -

  • 圖形

  • 標量

  • 直方圖

  • 嵌入

  • 影像

  • 文字

  • 音訊

  • 精確率-召回率曲線

MXFusion

MXFusion是一個具有深度學習功能的模組化機率程式設計庫。MXFusion允許我們充分利用模組化,這是深度學習庫的關鍵特性,應用於機率程式設計。它易於使用,併為使用者提供了一個方便的介面來設計機率模型並將其應用於現實世界的問題。

MXFusion已在macOS和Linux作業系統上的Python 3.4及更高版本上進行了驗證。為了安裝MXFusion,我們需要首先安裝以下依賴項:

  • MXNet >= 1.3

  • Networkx >= 2.1

藉助以下pip命令,您可以安裝MXFusion:

pip install mxfusion

TVM

Apache TVM是一個開源的端到端深度學習編譯器棧,適用於CPU、GPU和專用加速器等硬體後端,旨在彌合注重生產力的深度學習框架和注重效能的硬體後端之間的差距。使用最新的MXNet 1.6.0版本,使用者可以利用Apache(孵化中) TVM以Python程式語言實現高效能運算元核心。

Apache TVM實際上起源於華盛頓大學Paul G. Allen計算機科學與工程學院SAMPL小組的一個研究專案,現在它是在Apache軟體基金會(ASF)孵化中的一個專案,由一個涉及多個行業和學術機構的開源社群(OSC)在Apache的方式下推動。

以下是Apache(孵化中) TVM的主要功能:

  • 簡化了以前的基於C++的開發流程。

  • 能夠在多個硬體後端(如CPU、GPU等)之間共享相同的實現。

  • TVM提供將Kears、MXNet、PyTorch、Tensorflow、CoreML、DarkNet等各種框架中的DL模型編譯成可在不同硬體後端上部署的最小模組。

  • 它還為我們提供了自動生成和最佳化張量運算元的基礎設施,以獲得更好的效能。

XFer

Xfer是一個用Python編寫的遷移學習框架。它基本上會獲取一個MXNet模型,並訓練一個元模型或修改該模型以適應新的目標資料集。

簡單來說,Xfer是一個Python庫,允許使用者快速輕鬆地傳輸儲存在DNN(深度神經網路)中的知識。

Xfer可以用於:

  • 對任意數值格式的資料進行分類。

  • 應用於影像或文字資料的常見情況。

  • 作為一個從特徵提取到訓練重用器(執行目標任務中分類的物件)的管道。

以下是Xfer的功能

  • 資源效率

  • 資料效率

  • 輕鬆訪問神經網路

  • 不確定性建模

  • 快速原型設計

  • 從NN提取特徵的實用程式

廣告

© . All rights reserved.