Apache MXNet - Toolkits und Ökosystem

Um die Forschung und Entwicklung von Deep Learning-Anwendungen in vielen Bereichen zu unterstützen, bietet Apache MXNet ein reichhaltiges Ökosystem an Toolkits, Bibliotheken und vielem mehr. Lassen Sie uns sie erkunden -

ToolKits

Im Folgenden finden Sie einige der am häufigsten verwendeten und wichtigsten Toolkits von MXNet:

GluonCV

Wie der Name schon sagt, ist GluonCV ein Gluon-Toolkit für Computer Vision, das von MXNet unterstützt wird. Es bietet die Implementierung modernster DL-Algorithmen (Deep Learning) in Computer Vision (CV). Mit Hilfe des GluonCV-Toolkits können Ingenieure, Forscher und Studenten neue Ideen validieren und den Lebenslauf einfach lernen.

Im Folgenden sind einige der features of GluonCV - -

  • Es trainiert Skripte für die Reproduktion von Ergebnissen auf dem neuesten Stand der Technik, die in neuesten Forschungsergebnissen veröffentlicht wurden.

  • Mehr als 170 hochwertige, vorgefertigte Modelle.

  • Umfassen Sie flexibles Entwicklungsmuster.

  • GluonCV ist einfach zu optimieren. Wir können es bereitstellen, ohne das schwere DL-Framework beizubehalten.

  • Es bietet sorgfältig gestaltete APIs, die die Komplexität der Implementierung erheblich verringern.

  • Gemeinschaftliche Unterstützung.

  • Einfach zu verstehende Implementierungen.

Es folgen die supported applications von GluonCV Toolkit:

  • Bildklassifizierung

  • Objekterkennung

  • Semantische Segmentierung

  • Instanzsegmentierung

  • Posenschätzung

  • Video-Aktionserkennung

Wir können GluonCV mithilfe von pip wie folgt installieren:

pip install --upgrade mxnet gluoncv

GluonNLP

Wie der Name schon sagt, ist GluonNLP ein Gluon-Toolkit für die Verarbeitung natürlicher Sprache (NLP), das von MXNet unterstützt wird. Es bietet die Implementierung modernster DL-Modelle (Deep Learning) in NLP.

Mithilfe des GluonNLP-Toolkits können Ingenieure, Forscher und Studenten Blöcke für Textdaten-Pipelines und -Modelle erstellen. Basierend auf diesen Modellen können sie schnell Prototypen der Forschungsideen und des Produkts erstellen.

Im Folgenden sind einige der Funktionen von GluonNLP aufgeführt:

  • Es trainiert Skripte für die Reproduktion von Ergebnissen auf dem neuesten Stand der Technik, die in neuesten Forschungsergebnissen veröffentlicht wurden.

  • Satz vorab trainierter Modelle für allgemeine NLP-Aufgaben.

  • Es bietet sorgfältig gestaltete APIs, die die Komplexität der Implementierung erheblich verringern.

  • Gemeinschaftliche Unterstützung.

  • Es enthält auch Tutorials, die Ihnen den Einstieg in neue NLP-Aufgaben erleichtern.

Im Folgenden sind die NLP-Aufgaben aufgeführt, die wir mit dem GluonNLP-Toolkit implementieren können:

  • Worteinbettung

  • Sprachmodell

  • Maschinenübersetzung

  • Textklassifizierung

  • Stimmungsanalyse

  • Inferenz natürlicher Sprache

  • Texterzeugung

  • Abhängigkeitsanalyse

  • Named Entity Recognition

  • Absichtsklassifizierung und Slot-Kennzeichnung

Wir können GluonNLP mithilfe von pip wie folgt installieren:

pip install --upgrade mxnet gluonnlp

Gluonen

Wie der Name schon sagt, ist GluonTS ein Gluon-Toolkit für die probabilistische Zeitreihenmodellierung, das von MXNet unterstützt wird.

Es bietet die folgenden Funktionen -

  • Deep-Learning-Modelle nach dem neuesten Stand der Technik (SOTA), die für das Training bereit sind.

  • Die Dienstprogramme zum Laden und Durchlaufen von Zeitreihendatensätzen.

  • Bausteine ​​zur Definition Ihres eigenen Modells.

Mithilfe des GluonTS-Toolkits können Ingenieure, Forscher und Studenten jedes der integrierten Modelle anhand ihrer eigenen Daten trainieren und bewerten, schnell mit verschiedenen Lösungen experimentieren und eine Lösung für ihre Zeitreihenaufgaben finden.

Sie können die bereitgestellten Abstraktionen und Bausteine ​​auch verwenden, um benutzerdefinierte Zeitreihenmodelle zu erstellen und diese schnell mit Basisalgorithmen zu vergleichen.

Wir können GluonTS mithilfe von pip wie folgt installieren:

pip install gluonts

GluonFR

Wie der Name schon sagt, handelt es sich um ein Apache MXNet Gluon-Toolkit für FR (Gesichtserkennung). Es bietet die folgenden Funktionen -

  • Deep-Learning-Modelle nach dem neuesten Stand der Technik (SOTA) zur Gesichtserkennung.

  • Die Implementierung von SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss und LGM Loss usw.

Um Gluon Face zu installieren, benötigen wir Python 3.5 oder höher. Wir müssen auch zuerst GluonCV und MXNet wie folgt installieren:

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

Nachdem Sie die Abhängigkeiten installiert haben, können Sie GluonFR mit dem folgenden Befehl installieren:

From Source

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

Pip

pip install gluonfr

Ökosystem

Lassen Sie uns nun die umfangreichen Bibliotheken, Pakete und Frameworks von MXNet erkunden.

Trainer RL

Coach, ein RL-Framework (Python Reinforcement Learning), das vom Intel AI Lab erstellt wurde. Es ermöglicht ein einfaches Experimentieren mit modernsten RL-Algorithmen. Coach RL unterstützt Apache MXNet als Backend und ermöglicht die einfache Integration neuer Umgebungen.

Um vorhandene Komponenten problemlos zu erweitern und wiederzuverwenden, hat Coach RL die grundlegenden Komponenten des Verstärkungslernens wie Algorithmen, Umgebungen, NN-Architekturen und Explorationsrichtlinien sehr gut entkoppelt.

Im Folgenden sind die Agenten und unterstützten Algorithmen für das Coach RL-Framework aufgeführt:

Value Optimization Agents

  • Deep Q Network (DQN)

  • Double Deep Q Network (DDQN)

  • Duell Q Network

  • Gemischtes Monte Carlo (MMC)

  • Persistent Advantage Learning (PAL)

  • Kategoriales Deep Q-Netzwerk (C51)

  • Quantiles Regressions-Deep-Q-Netzwerk (QR-DQN)

  • N-Schritt Q Lernen

  • Neuronale episodische Kontrolle (NEC)

  • Normalisierte Vorteilsfunktionen (NAF)

  • Rainbow

Agenten zur Richtlinienoptimierung

  • Policy Gradients (PG)

  • Asynchronous Advantage Actor-Critic (A3C)

  • Deep Deterministic Policy Gradients (DDPG)

  • Proximale Richtlinienoptimierung (PPO)

  • Clipped Proximal Policy Optimization (CPPO)

  • Generalized Advantage Estimation (GAE)

  • Beispiel für einen effizienten Schauspieler-Kritiker mit Erfahrungswiederholung (ACER)

  • Soft Actor-Critic (SAC)

  • Twin Delayed Deep Deterministic Policy Gradient (TD3)

Generalvertreter

  • Direkte Zukunftsprognose (DFP)

Imitation Learning Agents

  • Behavioral Cloning (BC)

  • Bedingtes Nachahmungslernen

Hierarchical Reinforcement Learning Agents

  • Hierarchical Actor Critic (HAC)

Deep Graph Library

Die Deep Graph Library (DGL), die von den NYU- und AWS-Teams in Shanghai entwickelt wurde, ist ein Python-Paket, das eine einfache Implementierung von Graph Neural Networks (GNNs) über MXNet bietet. Es bietet auch eine einfache Implementierung von GNNs zusätzlich zu anderen vorhandenen großen Deep-Learning-Bibliotheken wie PyTorch, Gluon usw.

Deep Graph Library ist eine kostenlose Software. Es ist auf allen Linux-Distributionen später als Ubuntu 16.04, macOS X und Windows 7 oder höher verfügbar. Es erfordert auch die Python 3.5-Version oder höher.

Im Folgenden sind die Funktionen von DGL aufgeführt:

No Migration cost - Für die Verwendung von DGL fallen keine Migrationskosten an, da es auf den gängigen DL-Frameworks basiert.

Message Passing- DGL bietet die Weitergabe von Nachrichten und hat eine vielseitige Kontrolle darüber. Die Nachrichtenübermittlung reicht von Operationen auf niedriger Ebene wie dem Senden entlang ausgewählter Kanten bis hin zur Steuerung auf hoher Ebene wie grafikweiten Funktionsaktualisierungen.

Smooth Learning Curve - Es ist recht einfach, DGL zu erlernen und zu verwenden, da die leistungsstarken benutzerdefinierten Funktionen sowohl flexibel als auch benutzerfreundlich sind.

Transparent Speed Optimization - DGL bietet eine transparente Geschwindigkeitsoptimierung durch automatische Stapelverarbeitung und Multiplikation mit geringer Matrix.

High performance - Um maximale Effizienz zu erzielen, stapelt DGL das DNN-Training (Deep Neural Networks) automatisch in einem oder mehreren Diagrammen.

Easy & friendly interface - DGL bietet uns einfache und benutzerfreundliche Schnittstellen für den Zugriff auf Kantenfunktionen sowie für die Manipulation der Diagrammstruktur.

InsightFace

InsightFace, ein Deep Learning Toolkit für die Gesichtsanalyse, das die Implementierung des SOTA-Gesichtsanalysealgorithmus (Stand der Technik) in Computer Vision mit MXNet ermöglicht. Es bietet -

  • Hochwertiger großer Satz vorgefertigter Modelle.

  • Schulungsskripte nach dem neuesten Stand der Technik (SOTA).

  • InsightFace ist einfach zu optimieren. Wir können es bereitstellen, ohne das schwere DL-Framework beizubehalten.

  • Es bietet sorgfältig gestaltete APIs, die die Komplexität der Implementierung erheblich verringern.

  • Bausteine ​​zur Definition Ihres eigenen Modells.

Wir können InsightFace mithilfe von pip wie folgt installieren:

pip install --upgrade insightface

Bitte beachten Sie, dass Sie vor der Installation von InsightFace das richtige MXNet-Paket entsprechend Ihrer Systemkonfiguration installieren müssen.

Keras-MXNet

Da wir wissen, dass Keras eine in Python geschriebene NN-API (High-Level Neural Network) ist, bietet Keras-MXNet eine Backend-Unterstützung für Keras. Es kann auf einem leistungsstarken und skalierbaren Apache MXNet DL-Framework ausgeführt werden.

Die Funktionen von Keras-MXNet werden unten aufgeführt -

  • Ermöglicht Benutzern ein einfaches, reibungsloses und schnelles Prototyping. Dies alles geschieht durch Benutzerfreundlichkeit, Modularität und Erweiterbarkeit.

  • Unterstützt sowohl CNN (Convolutional Neural Networks) als auch RNN (Recurrent Neural Networks) sowie die Kombination von beiden.

  • Läuft einwandfrei auf der Central Processing Unit (CPU) und der Graphical Processing Unit (GPU).

  • Kann auf einer oder mehreren GPUs ausgeführt werden.

Um mit diesem Backend arbeiten zu können, müssen Sie zuerst keras-mxnet wie folgt installieren:

pip install keras-mxnet

Wenn Sie jetzt GPUs verwenden, installieren Sie MXNet mit CUDA 9-Unterstützung wie folgt:

pip install mxnet-cu90

Wenn Sie jedoch nur die CPU verwenden, installieren Sie das grundlegende MXNet wie folgt:

pip install mxnet

MXBoard

MXBoard ist ein in Python geschriebenes Protokollierungswerkzeug, mit dem MXNet-Datenrahmen aufgezeichnet und in TensorBoard angezeigt werden. Mit anderen Worten, das MXBoard soll der Tensorboard-Pytorch-API folgen. Es unterstützt die meisten Datentypen in TensorBoard.

Einige von ihnen sind unten erwähnt -

  • Graph

  • Scalar

  • Histogram

  • Embedding

  • Image

  • Text

  • Audio

  • Präzisionsrückrufkurve

MXFusion

MXFusion ist eine modulare probabilistische Programmierbibliothek mit tiefem Lernen. Mit MXFusion können wir die Modularität, die ein Schlüsselmerkmal von Deep-Learning-Bibliotheken ist, für die probabilistische Programmierung voll ausnutzen. Es ist einfach zu bedienen und bietet den Benutzern eine bequeme Oberfläche zum Entwerfen probabilistischer Modelle und zum Anwenden auf die realen Probleme.

MXFusion wird unter Python Version 3.4 und höher unter MacOS und Linux OS überprüft. Um MXFusion zu installieren, müssen zuerst die folgenden Abhängigkeiten installiert werden:

  • MXNet> = 1,3

  • Networkx> = 2.1

Mit Hilfe des folgenden Befehls pip können Sie MXFusion installieren -

pip install mxfusion

TVM

Apache TVM, ein Open-Source-End-to-End-Deep-Learning-Compiler-Stack für Hardware-Backends wie CPUs, GPUs und spezialisierte Beschleuniger, soll die Lücke zwischen produktivitätsorientierten Deep-Learning-Frameworks und leistungsorientierten Hardware-Backends schließen . Mit der neuesten Version MXNet 1.6.0 können Benutzer Apache (Inkubation) TVM nutzen, um leistungsstarke Operator-Kernel in der Programmiersprache Python zu implementieren.

Apache TVM startete tatsächlich als Forschungsprojekt an der SAMPL-Gruppe der Paul G. Allen School für Informatik und Ingenieurwesen der Universität von Washington. Jetzt wird es bei der Apache Software Foundation (ASF) inkubiert, die von einem OSC ( Open Source Community), an der mehrere Industrie- und akademische Einrichtungen nach Apache-Art beteiligt sind.

Im Folgenden sind die Hauptfunktionen von Apache (Inkubation) TVM aufgeführt:

  • Vereinfacht den früheren C ++ - basierten Entwicklungsprozess.

  • Ermöglicht die gemeinsame Nutzung derselben Implementierung für mehrere Hardware-Backends wie CPUs, GPUs usw.

  • TVM bietet die Kompilierung von DL-Modellen in verschiedenen Frameworks wie Kears, MXNet, PyTorch, Tensorflow, CoreML und DarkNet zu minimal bereitstellbaren Modulen auf verschiedenen Hardware-Backends.

  • Es bietet uns auch die Infrastruktur, um automatisch Tensoroperatoren mit besserer Leistung zu generieren und zu optimieren.

XFer

Xfer, ein Transfer-Lernframework, ist in Python geschrieben. Grundsätzlich wird ein MXNet-Modell verwendet und ein Metamodell trainiert oder das Modell auch für einen neuen Zieldatensatz geändert.

Mit einfachen Worten, Xfer ist eine Python-Bibliothek, mit der Benutzer schnell und einfach Wissen übertragen können, das in DNN (Deep Neural Networks) gespeichert ist.

Xfer kann verwendet werden -

  • Zur Klassifizierung von Daten beliebigen numerischen Formats.

  • Zu den häufigsten Fällen von Bildern oder Textdaten.

  • Als Pipeline, die Spam vom Extrahieren von Features bis zum Trainieren eines Repurposers (eines Objekts, das die Klassifizierung in der Zielaufgabe durchführt) spammt.

Im Folgenden sind die Funktionen von Xfer aufgeführt:

  • Ressourceneffizienz

  • Dateneffizienz

  • Einfacher Zugang zu neuronalen Netzen

  • Unsicherheitsmodellierung

  • Rapid-Prototyping

  • Dienstprogramme zum Extrahieren von Features aus NN