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/gluon-face.git@master
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