Apache MXNet - Toolkit ed ecosistema

Per supportare la ricerca e lo sviluppo di applicazioni di Deep Learning in molti campi, Apache MXNet ci fornisce un ricco ecosistema di toolkit, librerie e molti altri. Cerchiamo di esplorarli -

ToolKits

Di seguito sono riportati alcuni dei toolkit più utilizzati e importanti forniti da MXNet:

GluonCV

Come suggerisce il nome, GluonCV è un toolkit Gluon per la visione artificiale alimentato da MXNet. Fornisce l'implementazione di algoritmi DL (Deep Learning) all'avanguardia nella visione artificiale (CV). Con l'aiuto del toolkit GluonCV, ingegneri, ricercatori e studenti possono convalidare nuove idee e apprendere facilmente il CV.

Di seguito sono riportati alcuni dei file features of GluonCV -

  • Addestra script per riprodurre risultati all'avanguardia riportati nelle ultime ricerche.

  • Più di 170+ modelli pre-addestrati di alta qualità.

  • Adotta un modello di sviluppo flessibile.

  • GluonCV è facile da ottimizzare. Possiamo distribuirlo senza mantenere un framework DL pesante.

  • Fornisce API progettate con cura che riducono notevolmente la complessità dell'implementazione.

  • Supporto comunitario.

  • Implementazioni di facile comprensione.

Di seguito sono riportati i file supported applications di GluonCV toolkit:

  • Classificazione delle immagini

  • Rilevamento di oggetti

  • Segmentazione semantica

  • Segmentazione delle istanze

  • Stima della posa

  • Riconoscimento delle azioni video

Possiamo installare GluonCV usando pip come segue:

pip install --upgrade mxnet gluoncv

GluonNLP

Come suggerisce il nome, GluonNLP è un toolkit Gluon per l'elaborazione del linguaggio naturale (NLP) alimentato da MXNet. Fornisce l'implementazione di modelli DL (Deep Learning) all'avanguardia in PNL.

Con l'aiuto del toolkit GluonNLP, ingegneri, ricercatori e studenti possono creare blocchi per pipeline di dati di testo e modelli. Sulla base di questi modelli, possono prototipare rapidamente le idee di ricerca e il prodotto.

Di seguito sono riportate alcune delle caratteristiche di GluonNLP:

  • Addestra script per riprodurre risultati all'avanguardia riportati nelle ultime ricerche.

  • Set di modelli pre-addestrati per attività comuni di PNL.

  • Fornisce API progettate con cura che riducono notevolmente la complessità dell'implementazione.

  • Supporto comunitario.

  • Fornisce inoltre tutorial per aiutarti a iniziare a svolgere nuove attività di PNL.

Di seguito sono riportate le attività di PNL che possiamo implementare con il toolkit GluonNLP:

  • Incorporamento di parole

  • Modello linguistico

  • Traduzione automatica

  • Classificazione del testo

  • Sentiment Analysis

  • Inferenza del linguaggio naturale

  • Generazione di testo

  • Analisi delle dipendenze

  • Riconoscimento di entità nominate

  • Classificazione degli intenti ed etichettatura degli slot

Possiamo installare GluonNLP usando pip come segue:

pip install --upgrade mxnet gluonnlp

GluonTS

Come suggerisce il nome, GluonTS è un toolkit Gluon per la modellazione di serie temporali probabilistiche alimentato da MXNet.

Fornisce le seguenti funzionalità:

  • Modelli di deep learning all'avanguardia (SOTA) pronti per essere formati.

  • Le utilità per il caricamento e l'iterazione su set di dati di serie temporali.

  • Blocchi per definire il tuo modello.

Con l'aiuto del toolkit GluonTS, ingegneri, ricercatori e studenti possono addestrare e valutare qualsiasi modello integrato sui propri dati, sperimentare rapidamente diverse soluzioni e trovare una soluzione per le loro attività di serie temporali.

Possono anche utilizzare le astrazioni e gli elementi costitutivi forniti per creare modelli di serie temporali personalizzati e confrontarli rapidamente con algoritmi di base.

Possiamo installare GluonTS usando pip come segue:

pip install gluonts

GluonFR

Come suggerisce il nome, è un toolkit Apache MXNet Gluon per FR (Face Recognition). Fornisce le seguenti funzionalità:

  • Modelli di deep learning all'avanguardia (SOTA) nel riconoscimento facciale.

  • L'implementazione di SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss e LGM Loss, ecc.

Per installare Gluon Face, abbiamo bisogno di Python 3.5 o successivo. Dobbiamo anche prima installare GluonCV e MXNet come segue:

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

Dopo aver installato le dipendenze, puoi utilizzare il seguente comando per installare GluonFR -

From Source

pip install git+https://github.com/THUFutureLab/[email protected]

Pip

pip install gluonfr

Ecosistema

Ora esploriamo le ricche librerie, pacchetti e framework di MXNet:

Coach RL

Coach, un framework Python Reinforcement Learning (RL) creato da Intel AI lab. Consente una facile sperimentazione con algoritmi RL all'avanguardia. Coach RL supporta Apache MXNet come back-end e consente una semplice integrazione di un nuovo ambiente da risolvere.

Al fine di estendere e riutilizzare facilmente i componenti esistenti, Coach RL ha disaccoppiato molto bene i componenti di apprendimento di rinforzo di base come algoritmi, ambienti, architetture NN, politiche di esplorazione.

Di seguito sono riportati gli agenti e gli algoritmi supportati per il framework Coach RL:

Agenti per l'ottimizzazione del valore

  • Deep Q Network (DQN)

  • Double Deep Q Network (DDQN)

  • Dueling Q Network

  • Monte Carlo misto (MMC)

  • Persistent Advantage Learning (PAL)

  • Categorico Deep Q Network (C51)

  • Regressione quantile Deep Q Network (QR-DQN)

  • Apprendimento N-Step Q

  • Controllo episodico neurale (NEC)

  • Funzioni di vantaggio normalizzate (NAF)

  • Rainbow

Agenti per l'ottimizzazione delle politiche

  • Gradienti dei criteri (PG)

  • Asynchronous Advantage Actor-Critic (A3C)

  • Gradienti di policy deterministici profondi (DDPG)

  • Ottimizzazione della politica prossimale (PPO)

  • Ottimizzazione della politica prossimale ritagliata (CPPO)

  • Stima del vantaggio generalizzato (GAE)

  • Esempio di attore-critico efficiente con Experience Replay (ACER)

  • Soft Actor-Critic (SAC)

  • Gradiente di policy deterministico profondo con ritardo gemellare (TD3)

Agenti generali

  • Previsione futura diretta (DFP)

Agenti di apprendimento dell'imitazione

  • Clonazione comportamentale (BC)

  • Apprendimento dell'imitazione condizionale

Agenti gerarchici per l'apprendimento per rinforzo

  • Critico dell'attore gerarchico (HAC)

Libreria Deep Graph

Deep Graph Library (DGL), sviluppata dai team NYU e AWS, Shanghai, è un pacchetto Python che fornisce facili implementazioni di Graph Neural Networks (GNNs) su MXNet. Fornisce inoltre una facile implementazione dei GNN oltre ad altre importanti librerie di deep learning esistenti come PyTorch, Gluon, ecc.

Deep Graph Library è un software gratuito. È disponibile su tutte le distribuzioni Linux successive a Ubuntu 16.04, macOS X e Windows 7 o versioni successive. Richiede anche la versione Python 3.5 o successiva.

Di seguito sono riportate le caratteristiche di DGL:

No Migration cost - Non ci sono costi di migrazione per l'utilizzo di DGL in quanto si basa sui framework DL esistenti in uscita.

Message Passing- DGL fornisce il passaggio di messaggi e ha un controllo versatile su di esso. Il passaggio dei messaggi varia dalle operazioni di basso livello come l'invio lungo i bordi selezionati al controllo di alto livello come gli aggiornamenti delle funzionalità a livello di grafico.

Smooth Learning Curve - È abbastanza facile da imparare e utilizzare DGL poiché le potenti funzioni definite dall'utente sono flessibili e facili da usare.

Transparent Speed Optimization - DGL fornisce un'ottimizzazione trasparente della velocità eseguendo batch automatici di calcoli e moltiplicazione di matrici sparse.

High performance - Per ottenere la massima efficienza, DGL raggruppa automaticamente l'addestramento DNN (reti neurali profonde) su uno o più grafici insieme.

Easy & friendly interface - DGL ci fornisce interfacce facili e intuitive per l'accesso alle caratteristiche del bordo e per la manipolazione della struttura del grafico.

InsightFace

InsightFace, un kit di strumenti di apprendimento profondo per l'analisi del viso che fornisce l'implementazione dell'algoritmo di analisi del viso SOTA (stato dell'arte) nella visione artificiale basata su MXNet. Fornisce -

  • Ampio set di modelli pre-addestrati di alta qualità.

  • Script di formazione all'avanguardia (SOTA).

  • InsightFace è facile da ottimizzare. Possiamo distribuirlo senza mantenere un framework DL pesante.

  • Fornisce API progettate con cura che riducono notevolmente la complessità dell'implementazione.

  • Blocchi per definire il tuo modello.

Possiamo installare InsightFace usando pip come segue:

pip install --upgrade insightface

Tieni presente che prima di installare InsightFace, installa il pacchetto MXNet corretto in base alla configurazione del tuo sistema.

Keras-MXNet

Poiché sappiamo che Keras è un'API di rete neurale (NN) di alto livello scritta in Python, Keras-MXNet ci fornisce un supporto di backend per Keras. Può essere eseguito su un framework Apache MXNet DL scalabile e ad alte prestazioni.

Le caratteristiche di Keras-MXNet sono menzionate di seguito:

  • Consente agli utenti una prototipazione facile, fluida e veloce. Tutto avviene attraverso facilità d'uso, modularità ed estensibilità.

  • Supporta sia CNN (Convolutional Neural Networks) che RNN (Recurrent Neural Networks) e anche la combinazione di entrambi.

  • Funziona perfettamente sia su Central Processing Unit (CPU) che su Graphical Processing Unit (GPU).

  • Può funzionare su una o più GPU.

Per lavorare con questo backend, devi prima installare keras-mxnet come segue:

pip install keras-mxnet

Ora, se stai utilizzando GPU, installa MXNet con il supporto CUDA 9 come segue:

pip install mxnet-cu90

Ma se stai usando solo CPU, installa MXNet di base come segue:

pip install mxnet

MXBoard

MXBoard è uno strumento di registrazione, scritto in Python, utilizzato per registrare i frame di dati MXNet e visualizzarli in TensorBoard. In altre parole, MXBoard è pensato per seguire l'API tensorboard-pytorch. Supporta la maggior parte dei tipi di dati in TensorBoard.

Alcuni di loro sono menzionati di seguito:

  • Graph

  • Scalar

  • Histogram

  • Embedding

  • Image

  • Text

  • Audio

  • Curva di richiamo di precisione

MXFusion

MXFusion è una libreria di programmazione probabilistica modulare con deep learning. MXFusion ci consente di sfruttare appieno la modularità, che è una caratteristica fondamentale delle librerie di deep learning, per la programmazione probabilistica. È semplice da usare e fornisce agli utenti una comoda interfaccia per progettare modelli probabilistici e applicarli ai problemi del mondo reale.

MXFusion è verificato su Python versione 3.4 e più su MacOS e Linux OS. Per installare MXFusion, dobbiamo prima installare le seguenti dipendenze:

  • MXNet> = 1.3

  • Networkx> = 2.1

Con l'aiuto del seguente comando pip, puoi installare MXFusion -

pip install mxfusion

TVM

Apache TVM, uno stack di compilatore di deep learning end-to-end open source per backend hardware come CPU, GPU e acceleratori specializzati, mira a colmare il divario tra i framework di deep learning incentrati sulla produttività e i backend hardware orientati alle prestazioni . Con l'ultima versione MXNet 1.6.0, gli utenti possono sfruttare Apache (incubazione) TVM per implementare kernel operatore ad alte prestazioni nel linguaggio di programmazione Python.

Apache TVM in realtà è iniziato come progetto di ricerca presso il gruppo SAMPL della Paul G. Allen School of Computer Science & Engineering, Università di Washington e ora è uno sforzo in fase di incubazione presso The Apache Software Foundation (ASF) che è guidato da un OSC comunità open source) che coinvolge più industrie e istituzioni accademiche secondo il metodo Apache.

Di seguito sono riportate le caratteristiche principali di Apache (incubazione) TVM:

  • Semplifica il precedente processo di sviluppo basato su C ++.

  • Consente la condivisione della stessa implementazione su più backend hardware come CPU, GPU, ecc.

  • TVM fornisce la compilazione di modelli DL in vari framework come Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet in moduli minimi distribuibili su diversi backend hardware.

  • Ci fornisce inoltre l'infrastruttura per generare e ottimizzare automaticamente gli operatori tensoriali con prestazioni migliori.

XFer

Xfer, un framework per l'apprendimento del trasferimento, è scritto in Python. Fondamentalmente prende un modello MXNet e addestra un meta-modello o modifica il modello anche per un nuovo set di dati di destinazione.

In parole semplici, Xfer è una libreria Python che consente agli utenti di trasferire rapidamente e facilmente la conoscenza memorizzata in DNN (reti neurali profonde).

Xfer può essere utilizzato -

  • Per la classificazione dei dati di formato numerico arbitrario.

  • Ai casi comuni di immagini o dati di testo.

  • Come una pipeline che invia spam dall'estrazione di funzionalità all'addestramento di un repurposer (un oggetto che esegue la classificazione nell'attività di destinazione).

Di seguito sono riportate le caratteristiche di Xfer:

  • L'efficienza delle risorse

  • Efficienza dei dati

  • Facile accesso alle reti neurali

  • Modellazione dell'incertezza

  • Prototipazione rapida

  • Utilità per l'estrazione delle caratteristiche da NN