MXNet: Difference between revisions

From air
Jump to navigation Jump to search
No edit summary
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:

[[File:Mxnet.png|150px|thumb|right|Logo de MXNet]]

Apache MXNet est un framework de Deep Learning développé par la Apache Software Foundation. Il permet de développer et d'entraîner des modèles de réseaux de neurones, dont les réseaux neuronaux convolutifs (CNN) ou les réseaux de neurones récurrents (RNN). Ce framework multi-plateforme est particulièrement optimisé pour des déploiements sur des systèmes distribués et est nativement supporté par les environnements clouds comme AWS.
Apache MXNet est un framework de Deep Learning développé par la Apache Software Foundation. Il permet de développer et d'entraîner des modèles de réseaux de neurones, dont les réseaux neuronaux convolutifs (CNN) ou les réseaux de neurones récurrents (RNN). Ce framework multi-plateforme est particulièrement optimisé pour des déploiements sur des systèmes distribués et est nativement supporté par les environnements clouds comme AWS.





Line 8: Line 12:
== Caractéristiques ==
== Caractéristiques ==
===Scalable===
Scalable : MXNet est conçu pour être distribué sur une infrastructure cloud dynamique, utilisant un serveur de paramètres distribué et peut atteindre une échelle presque linéaire avec plusieurs GPU ou processeurs .
MXNet est conçu pour être distribué sur une infrastructure cloud dynamique, utilisant un serveur de paramètres distribué et peut atteindre une échelle presque linéaire avec plusieurs GPU ou processeurs .


===Flexible===
Flexible : MXNet prend en charge la programmation impérative et symbolique, Cela facilite également le suivi, le débogage, la sauvegarde des points de contrôle, la modification des hyperparamètres, tels que le taux d’apprentissage ou les arrêts précoces .
MXNet prend en charge la programmation impérative et symbolique, Cela facilite également le suivi, le débogage, la sauvegarde des points de contrôle, la modification des hyperparamètres, tels que le taux d’apprentissage ou les arrêts précoces .


===Multiples langages===
Multiple languages : Prise en charge du C ++ pour un backend optimisé afin de tirer le meilleur parti du processeur graphique ou du processeur disponible, ainsi que Python, R, Scala, Clojure, Julia, Perl, MATLAB et JavaScript pour une interface simple pour les développeurs.
Prise en charge du C ++ pour un backend optimisé afin de tirer le meilleur parti du processeur graphique ou du processeur disponible, ainsi que Python, R, Scala, Clojure, Julia, Perl, MATLAB et JavaScript pour une interface simple pour les développeurs.


===Portable===
Portable : Prend en charge le déploiement efficace d'un modèle formé sur des périphériques bas de gamme, tels que les périphériques mobiles les périphériques Internet des objets l'informatique sans serveur ou les conteneurs. Ces environnements bas de gamme ne peuvent avoir qu'un processeur plus faible ou une mémoire limitée et devraient pouvoir utiliser les modèles formés dans un environnement de niveau supérieur.
Prend en charge le déploiement efficace d'un modèle formé sur des périphériques bas de gamme, tels que les périphériques mobiles les périphériques Internet des objets l'informatique sans serveur ou les conteneurs. Ces environnements bas de gamme ne peuvent avoir qu'un processeur plus faible ou une mémoire limitée et devraient pouvoir utiliser les modèles formés dans un environnement de niveau supérieur.


== Écosystème ==
== Écosystème ==
Line 20: Line 28:
MXNet propose plusieurs librairies et outils supplémentaires qui viennent enrichir ses capacités.
MXNet propose plusieurs librairies et outils supplémentaires qui viennent enrichir ses capacités.


===GluonCV===
GluonCV : Un toolkit spécialisé dans la Computer Vision, qui contient une interface supplémentaires pour aider dans les problèmes de type CV, des modèles pré-entrainés et des scripts d'entrainements. https://gluon-cv.mxnet.io/
Un toolkit spécialisé dans la Computer Vision, qui contient une interface supplémentaires pour aider dans les problèmes de type CV, des modèles pré-entrainés et des scripts d'entrainements. https://gluon-cv.mxnet.io/


===GluonNLP===
GluonNLP : Des modèles d'entraînements spécifiques au NLP (traitement de langage naturel) https://gluon-nlp.mxnet.io/
Des modèles d'entraînements spécifiques au NLP (traitement de langage naturel) https://gluon-nlp.mxnet.io/


===GluonTS===
GluonTS : Un toolkit pour le Probabilistic Time Series Modeling, offre une API adaptée à des séries temporelles et des modèles répondants aux problèmes à base de séries temporelles probabilistes. https://gluon-ts.mxnet.io/
Un toolkit pour le Probabilistic Time Series Modeling, offre une API adaptée à des séries temporelles et des modèles répondants aux problèmes à base de séries temporelles probabilistes. https://gluon-ts.mxnet.io/


===MXBoard===
MXBoard : Une API pour faire le lien entre les modèles de MXNet et un board Tensorboard pour la visualisation des entraînements. https://github.com/awslabs/mxboard
Une API pour faire le lien entre les modèles de MXNet et un board Tensorboard pour la visualisation des entraînements. https://github.com/awslabs/mxboard


== Gluon ==
== Gluon ==
Line 33: Line 45:
Gluon possède aussi une classe hybride (HybridBlock) qui permet d'allier la facilité du modèle impératif avec les performances de l'approche symbolique.
Gluon possède aussi une classe hybride (HybridBlock) qui permet d'allier la facilité du modèle impératif avec les performances de l'approche symbolique.


Vous pouvez trouver un exemple d'utilisation sur ce lien :
Vous pouvez trouver un exemple d'utilisation dans cette archive : [[File:MXNet.zip]]


== Architecture ==
== Architecture ==


[[File:https://raw.githubusercontent.com/dmlc/dmlc.github.io/master/img/mxnet/system/overview.png]]
[[File:MXNETArchitecture.png|600px|thumb|right|https://mxnet.apache.org/api/architecture/overview]]


Runtime Dependency Engine: Planifie et exécute les opérations en fonction de leur dépendance en lecture/écriture.
''Runtime Dependency Engine'' : Planifie et exécute les opérations en fonction de leur dépendance en lecture/écriture.
Storage Allocator : Alloue et recycle efficacement les blocs de mémoire sur l'hôte (CPU) et les périphériques (GPU).
Storage Allocator : Alloue et recycle efficacement les blocs de mémoire sur l'hôte (CPU) et les périphériques (GPU).


Resource Manager : Gère les ressources globales, telles que le générateur de nombres aléatoires et l'espace temporel.
''Resource Manager'' : Gère les ressources globales, telles que le générateur de nombres aléatoires et l'espace temporel.

''NDArray'' : Tableaux dynamiques asynchrones à n dimensions, qui fournissent des programmes impératifs flexibles pour le MXNet.

''Symbolic Execution'' : Exécuteur statique de graphes symboliques, qui fournit une exécution et une optimisation efficaces des graphes symboliques.


''Operator'' : Opérateurs qui définissent le calcul statique de l'avance et du gradient (backprop).
NDArray : Tableaux dynamiques asynchrones à n dimensions, qui fournissent des programmes impératifs flexibles pour le MXNet.


''SimpleOp'' : Opérateurs qui étendent les opérateurs NDArray et les opérateurs symboliques de manière unifiée.
Symbolic Execution : Exécuteur statique de graphes symboliques, qui fournit une exécution et une optimisation efficaces des graphes symboliques.


''Symbol Construction'' : Construction symbolique, qui fournit un moyen de construire un graphe de calcul (configuration nette).
Operator : Opérateurs qui définissent le calcul statique de l'avance et du gradient (backprop).


''KVStore'' : Interface de stockage de valeurs clés pour une synchronisation efficace des paramètres.
SimpleOp : Opérateurs qui étendent les opérateurs NDArray et les opérateurs symboliques de manière unifiée.


''Data Loading(IO)'' : Chargement et augmentation efficaces des données distribuées.
Symbol Construction: Construction symbolique, qui fournit un moyen de construire un graphe de calcul (configuration nette).


== Sources ==
KVStore : Interface de stockage de valeurs clés pour une synchronisation efficace des paramètres.


* [https://mxnet.apache.org/ mxnet]
Data Loading(IO) : Chargement et augmentation efficaces des données distribuées.
* [https://mxnet.apache.org/api/python/docs/tutorials/packages/gluon/index.html gluon]

Latest revision as of 15:38, 13 January 2020

Logo de MXNet

Apache MXNet est un framework de Deep Learning développé par la Apache Software Foundation. Il permet de développer et d'entraîner des modèles de réseaux de neurones, dont les réseaux neuronaux convolutifs (CNN) ou les réseaux de neurones récurrents (RNN). Ce framework multi-plateforme est particulièrement optimisé pour des déploiements sur des systèmes distribués et est nativement supporté par les environnements clouds comme AWS.


Abstract

Apache MXNet is a deep learning framework maintained by Apache Software Foundation. It allows programmers to model and train various kinds of neural networks, such as Convulutional Neural Networks (CNN) or Recurrent Neural Networks (RNN). This multi-platform framework is especially optimized to be deployed on distributed systems and as such is currently one of the few frameworks natively supported by cloud environments such as AWS.

Caractéristiques

Scalable

MXNet est conçu pour être distribué sur une infrastructure cloud dynamique, utilisant un serveur de paramètres distribué et peut atteindre une échelle presque linéaire avec plusieurs GPU ou processeurs .

Flexible

MXNet prend en charge la programmation impérative et symbolique, Cela facilite également le suivi, le débogage, la sauvegarde des points de contrôle, la modification des hyperparamètres, tels que le taux d’apprentissage ou les arrêts précoces .

Multiples langages

Prise en charge du C ++ pour un backend optimisé afin de tirer le meilleur parti du processeur graphique ou du processeur disponible, ainsi que Python, R, Scala, Clojure, Julia, Perl, MATLAB et JavaScript pour une interface simple pour les développeurs.

Portable

Prend en charge le déploiement efficace d'un modèle formé sur des périphériques bas de gamme, tels que les périphériques mobiles les périphériques Internet des objets l'informatique sans serveur ou les conteneurs. Ces environnements bas de gamme ne peuvent avoir qu'un processeur plus faible ou une mémoire limitée et devraient pouvoir utiliser les modèles formés dans un environnement de niveau supérieur.

Écosystème

MXNet propose plusieurs librairies et outils supplémentaires qui viennent enrichir ses capacités.

GluonCV

Un toolkit spécialisé dans la Computer Vision, qui contient une interface supplémentaires pour aider dans les problèmes de type CV, des modèles pré-entrainés et des scripts d'entrainements. https://gluon-cv.mxnet.io/

GluonNLP

Des modèles d'entraînements spécifiques au NLP (traitement de langage naturel) https://gluon-nlp.mxnet.io/

GluonTS

Un toolkit pour le Probabilistic Time Series Modeling, offre une API adaptée à des séries temporelles et des modèles répondants aux problèmes à base de séries temporelles probabilistes. https://gluon-ts.mxnet.io/

MXBoard

Une API pour faire le lien entre les modèles de MXNet et un board Tensorboard pour la visualisation des entraînements. https://github.com/awslabs/mxboard

Gluon

Gluon est l'interface de programmation impérative de MXNet pour modéliser les réseaux de neurones. Assez similaire à l'approche utilisée par Pytorch, elle permet de définir des modèles flexibles et faciles à mettre en place. Gluon possède aussi une classe hybride (HybridBlock) qui permet d'allier la facilité du modèle impératif avec les performances de l'approche symbolique.

Vous pouvez trouver un exemple d'utilisation dans cette archive : File:MXNet.zip

Architecture

Runtime Dependency Engine : Planifie et exécute les opérations en fonction de leur dépendance en lecture/écriture. Storage Allocator : Alloue et recycle efficacement les blocs de mémoire sur l'hôte (CPU) et les périphériques (GPU).

Resource Manager : Gère les ressources globales, telles que le générateur de nombres aléatoires et l'espace temporel.

NDArray : Tableaux dynamiques asynchrones à n dimensions, qui fournissent des programmes impératifs flexibles pour le MXNet.

Symbolic Execution : Exécuteur statique de graphes symboliques, qui fournit une exécution et une optimisation efficaces des graphes symboliques.

Operator : Opérateurs qui définissent le calcul statique de l'avance et du gradient (backprop).

SimpleOp : Opérateurs qui étendent les opérateurs NDArray et les opérateurs symboliques de manière unifiée.

Symbol Construction : Construction symbolique, qui fournit un moyen de construire un graphe de calcul (configuration nette).

KVStore : Interface de stockage de valeurs clés pour une synchronisation efficace des paramètres.

Data Loading(IO) : Chargement et augmentation efficaces des données distribuées.

Sources