VT2018 Apache Mxnet

=Introduction=

Apache MXNet est un framework open-source de deep learning, utilisé pour former et déployer des réseaux neuronaux profonds. Il est évolutif, permettant une formation rapide aux modèles, et supporte un modèle de programmation flexible et de multiples langages de programmation (comme C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, et Wolfram Language).

La bibliothèque MXNet est portable et peut évoluer vers plusieurs GPU et plusieurs machines. Le MXNet est soutenu par des fournisseurs publics de cloud computing, dont Amazon Web Services (AWS) et Microsoft Azure. Amazon a choisi le MXNet comme cadre d'apprentissage approfondi de choix chez AWS. Actuellement, le MXNet est soutenu par Intel, Dato, Baidu, Microsoft, Wolfram Research et des institutions de recherche comme Carnegie Mellon, MIT, University of Washington et la Hong Kong University of Science and Technology.

=Abstract=

Apache MXNet is a deep learning open-source framework used to train and deploy deep neural networks. It is scalable, allowing rapid model training, and supports a flexible programming model and multiple programming languages (such as C++, Python, Julia, Matlab, JavaScript, Go, R, Scala, Perl, and Wolfram Language).

The MXNet library is portable and can be upgraded to multiple GPUs and machines. MXNet is supported by public cloud computing providers, including Amazon Web Services (AWS) and Microsoft Azure. Amazon has chosen MXNet as its preferred in-depth learning framework at AWS. Currently, MXNet is supported by Intel, Dato, Baidu, Microsoft, Wolfram Research and research institutions such as Carnegie Mellon, MIT, University of Washington and Hong Kong University of Science and Technology.

=Synthèse=

Avantages
Apache MXNet est un framework de deep learning léger, flexible et adaptable qui supporte deux modèles d'apprentissage profond comme les réseaux neuronaux convolutifs (CNNs) et les réseaux de mémoire à long terme (LSTMs).

Flexible
MXNet est conçu pour être distribué sur une infrastructure cloud, en utilisant un serveur de paramètres distribués (basé sur des recherches de l'Université Carnegie Mellon, Baidu et Google), et peut atteindre une échelle presque linéaire avec plusieurs GPU ou CPU.

Langages multiples
MXNet supporte à la fois la programmation impérative et symbolique, ce qui permet aux développeurs habitués à la programmation impérative de s'initier plus facilement à l'apprentissage approfondi. Il 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 l'arrêt anticipé. Langues multiples

Supporte C++ pour le backend optimisé pour tirer le meilleur parti du GPU ou CPU disponible, et Python, R, Scala, Julia, Perl, MATLAB et JavaScript pour un frontend simple pour les développeurs.

Portable
Prend en charge d'un déploiement efficace d'un modèle formé à des appareils bas de gamme, tels que les appareils mobiles (en utilisant Amalgamation), Internet of things devices (en utilisant AWS Greengrass), serverless computing (en utilisant AWS Lambda) ou des containers. Ces environnements bas de gamme ne peuvent avoir qu'un CPU plus faible ou une mémoire limitée (RAM), et devraient être capables d'utiliser les modèles qui ont été formés sur un environnement de niveau supérieur (cluster basé sur GPU, par exemple).

=Sources=


 * https://github.com/apache/incubator-mxnet
 * https://aws.amazon.com/fr/mxnet/
 * https://software.intel.com/en-us/neural-compute-stick/get-started
 * https://dzone.com/articles/apache-deep-learning-101-using-apache-mxnet-on-the
 * https://github.com/movidius/ncappzoo
 * https://software.intel.com/en-us/articles/apache-mxnet-v120-released-with-intel-optimized-cpu-backend
 * https://mxnet.apache.org/tutorials/index.html
 * https://gluon-crash-course.mxnet.io/ndarray.html
 * https://github.com/apache/incubator-mxnet