Apache MXNet - Boîtes à outils et écosystème

Pour soutenir la recherche et le développement d'applications de Deep Learning dans de nombreux domaines, Apache MXNet nous fournit un riche écosystème de boîtes à outils, de bibliothèques et bien d'autres. Laissez-nous les explorer -

Kits d'outils

Voici quelques-unes des boîtes à outils les plus utilisées et les plus importantes fournies par MXNet -

GluonCV

Comme son nom l'indique, GluonCV est une boîte à outils Gluon pour la vision par ordinateur alimentée par MXNet. Il fournit la mise en œuvre d'algorithmes DL (Deep Learning) de pointe en vision par ordinateur (CV). Avec l'aide de la boîte à outils GluonCV, les ingénieurs, les chercheurs et les étudiants peuvent valider de nouvelles idées et apprendre facilement des CV.

Ci-dessous quelques-uns des features of GluonCV -

  • Il forme des scripts pour reproduire les résultats de pointe rapportés dans les dernières recherches.

  • Plus de 170+ modèles pré-entraînés de haute qualité.

  • Adoptez un modèle de développement flexible.

  • GluonCV est facile à optimiser. Nous pouvons le déployer sans conserver le cadre DL lourd.

  • Il fournit des API soigneusement conçues qui réduisent considérablement la complexité de la mise en œuvre.

  • Soutien communautaire.

  • Implémentations faciles à comprendre.

Voici les supported applications par la boîte à outils GluonCV:

  • Classification d'image

  • Détection d'objets

  • Segmentation sémantique

  • Segmentation d'instance

  • Estimation de la pose

  • Reconnaissance des actions vidéo

Nous pouvons installer GluonCV en utilisant pip comme suit -

pip install --upgrade mxnet gluoncv

GluonNLP

Comme son nom l'indique, GluonNLP est une boîte à outils Gluon pour le traitement du langage naturel (NLP) alimenté par MXNet. Il fournit la mise en œuvre de modèles DL (Deep Learning) de pointe en PNL.

Avec l'aide de la boîte à outils GluonNLP, les ingénieurs, les chercheurs et les étudiants peuvent créer des blocs pour des pipelines et des modèles de données texte. Sur la base de ces modèles, ils peuvent rapidement prototyper les idées et le produit de la recherche.

Voici quelques-unes des fonctionnalités de GluonNLP:

  • Il forme des scripts pour reproduire les résultats de pointe rapportés dans les dernières recherches.

  • Ensemble de modèles pré-entraînés pour les tâches PNL courantes.

  • Il fournit des API soigneusement conçues qui réduisent considérablement la complexité de la mise en œuvre.

  • Soutien communautaire.

  • Il fournit également des didacticiels pour vous aider à démarrer sur de nouvelles tâches PNL.

Voici les tâches PNL que nous pouvons implémenter avec la boîte à outils GluonNLP -

  • Intégration de mots

  • Modèle de langage

  • Traduction automatique

  • Classification du texte

  • Analyse des sentiments

  • Inférence de langage naturel

  • Génération de texte

  • Analyse des dépendances

  • Reconnaissance des entités nommées

  • Classification d'intention et étiquetage des emplacements

Nous pouvons installer GluonNLP en utilisant pip comme suit -

pip install --upgrade mxnet gluonnlp

GluonTS

Comme son nom l'indique, GluonTS est une boîte à outils Gluon pour la modélisation probabiliste de séries temporelles alimentée par MXNet.

Il fournit les fonctionnalités suivantes -

  • Modèles d'apprentissage en profondeur à la pointe de la technologie (SOTA) prêts à être formés.

  • Les utilitaires de chargement et d'itération sur des ensembles de données de séries chronologiques.

  • Blocs de construction pour définir votre propre modèle.

Avec l'aide de la boîte à outils GluonTS, les ingénieurs, les chercheurs et les étudiants peuvent former et évaluer n'importe lequel des modèles intégrés sur leurs propres données, expérimenter rapidement différentes solutions et proposer une solution pour leurs tâches de séries chronologiques.

Ils peuvent également utiliser les abstractions et les blocs de construction fournis pour créer des modèles de séries chronologiques personnalisés et les comparer rapidement à des algorithmes de base.

Nous pouvons installer GluonTS en utilisant pip comme suit -

pip install gluonts

GluonFR

Comme son nom l'indique, il s'agit d'une boîte à outils Apache MXNet Gluon pour FR (reconnaissance faciale). Il fournit les fonctionnalités suivantes -

  • Modèles d'apprentissage profond de pointe (SOTA) en reconnaissance faciale.

  • La mise en œuvre de SoftmaxCrossEntropyLoss, ArcLoss, TripletLoss, RingLoss, CosLoss / AMsoftmax, L2-Softmax, A-Softmax, CenterLoss, ContrastiveLoss et LGM Loss, etc.

Pour installer Gluon Face, nous avons besoin de Python 3.5 ou version ultérieure. Nous devons également d'abord installer GluonCV et MXNet comme suit -

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

Une fois que vous avez installé les dépendances, vous pouvez utiliser la commande suivante pour installer GluonFR -

From Source

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

Pip

pip install gluonfr

Écosystème

Explorons maintenant les riches bibliothèques, packages et frameworks de MXNet -

Entraîneur RL

Coach, un framework Python Reinforcement Learning (RL) créé par Intel AI lab. Il permet une expérimentation facile avec des algorithmes RL de pointe. Coach RL prend en charge Apache MXNet en tant que back-end et permet une intégration simple d'un nouvel environnement à résoudre.

Afin d'étendre et de réutiliser facilement les composants existants, Coach RL a très bien découplé les composants d'apprentissage par renforcement de base tels que les algorithmes, les environnements, les architectures NN, les politiques d'exploration.

Voici les agents et les algorithmes pris en charge pour le framework Coach RL -

Agents d'optimisation de la valeur

  • Réseau Q profond (DQN)

  • Réseau Double Deep Q (DDQN)

  • Réseau Dueling Q

  • Monte Carlo mixte (MMC)

  • Apprentissage des avantages persistants (PAL)

  • Réseau catégoriel Deep Q (C51)

  • Réseau Q profond de régression quantile (QR-DQN)

  • Apprentissage N-Step Q

  • Contrôle épisodique neuronal (NEC)

  • Fonctions d'avantage normalisées (NAF)

  • Rainbow

Agents d'optimisation des politiques

  • Gradients de politique (PG)

  • Asynchronous Advantage Actor-Critic (A3C)

  • Gradients de politique déterministes profonds (DDPG)

  • Optimisation de la politique proximale (PPO)

  • Optimisation de la politique proximale tronquée (CPPO)

  • Estimation des avantages généralisés (GAE)

  • Exemple de critique d'acteur efficace avec Experience Replay (ACER)

  • Critique d'acteur doux (SAC)

  • Gradient de politique déterministe profond à double retard (TD3)

Agents généraux

  • Prédiction directe du futur (DFP)

Agents d'apprentissage d'imitation

  • Clonage comportemental (BC)

  • Apprentissage par imitation conditionnelle

Agents d'apprentissage par renforcement hiérarchique

  • Critique d'acteur hiérarchique (HAC)

Bibliothèque de graphes profonds

Deep Graph Library (DGL), développé par les équipes NYU et AWS, Shanghai, est un package Python qui fournit des implémentations faciles de Graph Neural Networks (GNN) au-dessus de MXNet. Il fournit également une implémentation facile des GNN en plus d'autres grandes bibliothèques d'apprentissage en profondeur existantes telles que PyTorch, Gluon, etc.

Deep Graph Library est un logiciel gratuit. Il est disponible sur toutes les distributions Linux ultérieures à Ubuntu 16.04, macOS X et Windows 7 ou version ultérieure. Il nécessite également la version Python 3.5 ou ultérieure.

Voici les caractéristiques de DGL -

No Migration cost - Il n'y a aucun coût de migration pour l'utilisation de DGL car il est construit sur les frameworks DL existants.

Message Passing- DGL assure la transmission des messages et dispose d'un contrôle polyvalent sur celui-ci. Le passage du message va des opérations de bas niveau telles que l'envoi le long des bords sélectionnés au contrôle de haut niveau comme les mises à jour des fonctionnalités à l'échelle du graphique.

Smooth Learning Curve - Il est assez facile d'apprendre et d'utiliser DGL car les puissantes fonctions définies par l'utilisateur sont flexibles et faciles à utiliser.

Transparent Speed Optimization - DGL offre une optimisation transparente de la vitesse en effectuant un traitement par lots automatique des calculs et une multiplication de matrice clairsemée.

High performance - Afin d'atteindre une efficacité maximale, DGL regroupe automatiquement l'entraînement DNN (Deep Neural Networks) sur un ou plusieurs graphiques ensemble.

Easy & friendly interface - DGL nous fournit des interfaces simples et conviviales pour l'accès aux fonctionnalités de bord ainsi que la manipulation de la structure des graphiques.

InsightFace

InsightFace, une boîte à outils d'apprentissage en profondeur pour l'analyse de visage qui fournit la mise en œuvre de l'algorithme d'analyse de visage SOTA (de pointe) dans la vision par ordinateur alimenté par MXNet. Il fournit -

  • Grand ensemble de modèles pré-entraînés de haute qualité.

  • Scripts de formation de pointe (SOTA).

  • InsightFace est facile à optimiser. Nous pouvons le déployer sans conserver le cadre DL lourd.

  • Il fournit des API soigneusement conçues qui réduisent considérablement la complexité de la mise en œuvre.

  • Blocs de construction pour définir votre propre modèle.

Nous pouvons installer InsightFace en utilisant pip comme suit -

pip install --upgrade insightface

Veuillez noter qu'avant d'installer InsightFace, veuillez installer le package MXNet approprié en fonction de la configuration de votre système.

Keras-MXNet

Comme nous savons que Keras est une API de réseau neuronal (NN) de haut niveau écrite en Python, Keras-MXNet nous fournit un support backend pour Keras. Il peut fonctionner sur un framework Apache MXNet DL hautes performances et évolutif.

Les fonctionnalités de Keras-MXNet sont mentionnées ci-dessous -

  • Permet aux utilisateurs un prototypage facile, fluide et rapide. Tout cela passe par la convivialité, la modularité et l'extensibilité.

  • Prend en charge à la fois CNN (réseaux de neurones convolutionnels) et RNN (réseaux de neurones récurrents) ainsi que la combinaison des deux.

  • Fonctionne parfaitement à la fois sur l'unité centrale (CPU) et l'unité de traitement graphique (GPU).

  • Peut fonctionner sur un ou plusieurs GPU.

Pour travailler avec ce backend, vous devez d'abord installer keras-mxnet comme suit -

pip install keras-mxnet

Maintenant, si vous utilisez des GPU, installez MXNet avec le support CUDA 9 comme suit -

pip install mxnet-cu90

Mais si vous utilisez uniquement le processeur, installez MXNet de base comme suit -

pip install mxnet

MXBoard

MXBoard est un outil de journalisation, écrit en Python, utilisé pour enregistrer des trames de données MXNet et les afficher dans TensorBoard. En d'autres termes, le MXBoard est censé suivre l'API tensorboard-pytorch. Il prend en charge la plupart des types de données dans TensorBoard.

Certains d'entre eux sont mentionnés ci-dessous -

  • Graph

  • Scalar

  • Histogram

  • Embedding

  • Image

  • Text

  • Audio

  • Courbe de rappel de précision

MXFusion

MXFusion est une bibliothèque de programmation probabiliste modulaire avec apprentissage en profondeur. MXFusion nous permet d'exploiter pleinement la modularité, qui est une caractéristique clé des bibliothèques de deep learning, pour la programmation probabiliste. Il est simple à utiliser et fournit aux utilisateurs une interface pratique pour concevoir des modèles probabilistes et les appliquer aux problèmes du monde réel.

MXFusion est vérifié sur Python version 3.4 et plus sur MacOS et Linux OS. Pour installer MXFusion, nous devons d'abord installer les dépendances suivantes -

  • MXNet> = 1,3

  • Networkx> = 2,1

With the help of following pip command, you can install MXFusion −

pip install mxfusion

TVM

Apache TVM, an open-source end-to-end deep learning compiler stack for hardware-backends such as CPUs, GPUs, and specialized accelerators, aims to fill the gap between the productivity-focused deep-learning frameworks and performance-oriented hardware backends. With the latest release MXNet 1.6.0, users can leverage Apache(incubating) TVM to implement high-performance operator kernels in Python programming language.

Apache TVM actually started as a research project at the SAMPL group of Paul G. Allen School of Computer Science & Engineering, University of Washington and now it is an effort undergoing incubation at The Apache Software Foundation (ASF) which is driven by an OSC (open source community) that involves multiple industry as well as academic institutions under the Apache way.

Following are the main features of Apache(incubating) TVM −

  • Simplifies the former C++ based development process.

  • Enables sharing the same implementation across multiple hardware backends such as CPUs, GPUs, etc.

  • TVM provides compilation of DL models in various frameworks such as Kears, MXNet, PyTorch, Tensorflow, CoreML, DarkNet into minimum deployable modules on diverse hardware backends.

  • It also provides us the infrastructure to automatically generate and optimize tensor operators with better performance.

XFer

Xfer, a transfer learning framework, is written in Python. It basically takes an MXNet model and train a meta-model or modifies the model for a new target dataset as well.

In simple words, Xfer is a Python library that allows users to quick and easy transfer of knowledge stored in DNN (deep neural networks).

Xfer can be used −

  • For the classification of data of arbitrary numeric format.

  • To the common cases of images or text data.

  • As a pipeline that spams from extracting features to training a repurposer (an object that performs classification in the target task).

Following are the features of Xfer:

  • Resource efficiency

  • Data efficiency

  • Easy access to neural networks

  • Uncertainty modeling

  • Rapid prototyping

  • Utilities for feature extraction from NN