Apache MXNet - Installation de MXNet

Pour démarrer avec MXNet, la première chose à faire est de l'installer sur notre ordinateur. Apache MXNet fonctionne sur à peu près toutes les plates-formes disponibles, y compris Windows, Mac et Linux.

OS Linux

Nous pouvons installer MXNet sur Linux OS de la manière suivante -

Unité de traitement graphique (GPU)

Ici, nous utiliserons diverses méthodes à savoir Pip, Docker et Source pour installer MXNet lorsque nous utilisons GPU pour le traitement -

En utilisant la méthode Pip

Vous pouvez utiliser la commande suivante pour installer MXNet sur votre système d'exploitation Linus -

pip install mxnet

Apache MXNet propose également des packages MKL pip, qui sont beaucoup plus rapides lorsqu'ils sont exécutés sur du matériel Intel. Ici par exemplemxnet-cu101mkl signifie que -

  • Le package est construit avec CUDA / cuDNN

  • Le package est compatible MKL-DNN

  • La version CUDA est 10.1

Pour une autre option, vous pouvez également vous référer à https://pypi.org/project/mxnet/.

En utilisant Docker

Vous pouvez trouver les images du docker avec MXNet sur DockerHub, disponible sur https://hub.docker.com/u/mxnet Laissez-nous vérifier les étapes ci-dessous pour installer MXNet en utilisant Docker avec GPU -

Step 1- Tout d'abord, en suivant les instructions d'installation du docker disponibles sur https://docs.docker.com/engine/install/ubuntu/. Nous devons installer Docker sur notre machine.

Step 2- Pour activer l'utilisation des GPU à partir des conteneurs docker, nous devons ensuite installer nvidia-docker-plugin. Vous pouvez suivre les instructions d'installation données surhttps://github.com/NVIDIA/nvidia-docker/wiki.

Step 3- En utilisant la commande suivante, vous pouvez extraire l'image du docker MXNet -

$ sudo docker pull mxnet/python:gpu

Maintenant, afin de voir si l'extraction d'image docker mxnet / python a réussi, nous pouvons lister les images docker comme suit -

$ sudo docker images

Pour obtenir les vitesses d'inférence les plus rapides avec MXNet, il est recommandé d'utiliser le dernier MXNet avec Intel MKL-DNN. Vérifiez les commandes ci-dessous -

$ sudo docker pull mxnet/python:1.3.0_cpu_mkl
$ sudo docker images

De la source

Pour créer la bibliothèque partagée MXNet à partir des sources avec GPU, nous devons d'abord configurer l'environnement pour CUDA et cuDNN comme suit -

  • Téléchargez et installez la boîte à outils CUDA, ici CUDA 9.2 est recommandé.

  • Téléchargement suivant cuDNN 7.1.4.

  • Nous devons maintenant décompresser le fichier. Il est également nécessaire de passer au répertoire racine cuDNN. Déplacez également l'en-tête et les bibliothèques vers le dossier local CUDA Toolkit comme suit -

tar xvzf cudnn-9.2-linux-x64-v7.1
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
sudo ldconfig

Après avoir configuré l'environnement pour CUDA et cuDNN, suivez les étapes ci-dessous pour créer la bibliothèque partagée MXNet à partir de la source -

Step 1- Tout d'abord, nous devons installer les packages prérequis. Ces dépendances sont requises sur Ubuntu version 16.04 ou ultérieure.

sudo apt-get update
sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev 
libopencv-dev cmake

Step 2- Dans cette étape, nous téléchargerons la source MXNet et la configurerons. Commençons par cloner le référentiel en utilisant la commande suivante -

git clone –recursive https://github.com/apache/incubator-mxnet.git mxnet
cd mxnet
cp config/linux_gpu.cmake #for build with CUDA

Step 3- En utilisant les commandes suivantes, vous pouvez créer la bibliothèque partagée MXNet Core -

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Two important points regarding the above step is as follows−

Si vous souhaitez créer la version de débogage, spécifiez le comme suit -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Afin de définir le nombre de travaux de compilation parallèles, spécifiez ce qui suit -

cmake --build . --parallel N

Une fois que vous avez créé avec succès la bibliothèque partagée MXNet Core, dans le build dossier dans votre MXNet project root, tu trouveras libmxnet.so qui est nécessaire pour installer les liaisons de langue (facultatif).

Unité centrale de traitement (CPU)

Ici, nous utiliserons différentes méthodes, à savoir Pip, Docker et Source pour installer MXNet lorsque nous utilisons le processeur pour le traitement -

En utilisant la méthode Pip

Vous pouvez utiliser la commande suivante pour installer MXNet sur votre système d'exploitation Linus -

pip install mxnet

Apache MXNet propose également des packages pip compatibles MKL-DNN qui sont beaucoup plus rapides, lorsqu'ils sont exécutés sur du matériel Intel.

pip install mxnet-mkl

En utilisant Docker

Vous pouvez trouver les images du docker avec MXNet sur DockerHub, disponible sur https://hub.docker.com/u/mxnet. Laissez-nous vérifier les étapes ci-dessous pour installer MXNet en utilisant Docker avec CPU -

Step 1- Tout d'abord, en suivant les instructions d'installation du docker disponibles sur https://docs.docker.com/engine/install/ubuntu/. Nous devons installer Docker sur notre machine.

Step 2- En utilisant la commande suivante, vous pouvez extraire l'image du docker MXNet:

$ sudo docker pull mxnet/python

Maintenant, pour voir si l'extraction d'image docker mxnet / python a réussi, nous pouvons lister les images docker comme suit -

$ sudo docker images

Pour obtenir les vitesses d'inférence les plus rapides avec MXNet, il est recommandé d'utiliser le dernier MXNet avec Intel MKL-DNN.

Vérifiez les commandes ci-dessous -

$ sudo docker pull mxnet/python:1.3.0_cpu_mkl
$ sudo docker images

De la source

Pour créer la bibliothèque partagée MXNet à partir de la source avec le CPU, suivez les étapes ci-dessous:

Step 1- Tout d'abord, nous devons installer les packages prérequis. Ces dépendances sont requises sur Ubuntu version 16.04 ou ultérieure.

sudo apt-get update

sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake

Step 2- Dans cette étape, nous téléchargerons la source MXNet et la configurerons. Commençons par cloner le référentiel en utilisant la commande suivante:

git clone –recursive https://github.com/apache/incubator-mxnet.git mxnet

cd mxnet
cp config/linux.cmake config.cmake

Step 3- En utilisant les commandes suivantes, vous pouvez créer la bibliothèque partagée MXNet Core:

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Two important points regarding the above step is as follows−

Si vous souhaitez créer la version de débogage, spécifiez le comme suit:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Afin de définir le nombre de travaux de compilation parallèles, spécifiez ce qui suit:

cmake --build . --parallel N

Une fois que vous avez créé avec succès la bibliothèque partagée MXNet Core, dans le build dans la racine de votre projet MXNet, vous trouverez libmxnet.so, qui est nécessaire pour installer les liaisons de langue (facultatif).

MacOS

Nous pouvons installer MXNet sur MacOS de la manière suivante -

Unité de traitement graphique (GPU)

Si vous envisagez de créer MXNet sur MacOS avec GPU, il n'y a PAS de méthode Pip et Docker disponible. La seule méthode dans ce cas est de le construire à partir des sources.

De la source

Pour créer la bibliothèque partagée MXNet à partir de la source avec GPU, nous devons d'abord configurer l'environnement pour CUDA et cuDNN. Vous devez suivre leNVIDIA CUDA Installation Guide qui est disponible à https://docs.nvidia.com et cuDNN Installation Guide, qui est disponible à https://docs.nvidia.com/deeplearning pour mac OS.

Veuillez noter qu'en 2019, CUDA a cessé de prendre en charge macOS. En fait, les futures versions de CUDA peuvent également ne pas prendre en charge macOS.

Une fois que vous avez configuré l'environnement pour CUDA et cuDNN, suivez les étapes ci-dessous pour installer MXNet à partir de la source sur OS X (Mac) -

Step 1- Comme nous avons besoin de quelques dépendances sur OS x, nous devons d'abord installer les packages prérequis.

xcode-select –-install #Install OS X Developer Tools

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" #Install Homebrew

brew install cmake ninja ccache opencv # Install dependencies

Nous pouvons également créer MXNet sans OpenCV car opencv est une dépendance facultative.

Step 2- Dans cette étape, nous téléchargerons la source MXNet et la configurerons. Commençons par cloner le référentiel en utilisant la commande suivante -

git clone –-recursive https://github.com/apache/incubator-mxnet.git mxnet

cd mxnet
cp config/linux.cmake config.cmake

Pour un GPU activé, il est nécessaire d'installer d'abord les dépendances CUDA car lorsque l'on essaie de construire une build compatible GPU sur une machine sans GPU, la build MXNet ne peut pas détecter automatiquement votre architecture GPU. Dans de tels cas, MXNet ciblera toutes les architectures GPU disponibles.

Step 3- En utilisant les commandes suivantes, vous pouvez créer la bibliothèque partagée MXNet Core -

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Deux points importants concernant l'étape ci-dessus sont les suivants:

Si vous souhaitez créer la version de débogage, spécifiez le comme suit -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Afin de définir le nombre de travaux de compilation parallèles, spécifiez les éléments suivants:

cmake --build . --parallel N

Une fois que vous avez créé avec succès la bibliothèque partagée MXNet Core, dans le build dossier dans votre MXNet project root, tu trouveras libmxnet.dylib, qui est nécessaire pour installer les liaisons de langue (facultatif).

Unité centrale de traitement (CPU)

Ici, nous utiliserons diverses méthodes à savoir Pip, Docker et Source pour installer MXNet lorsque nous utilisons le processeur pour le traitement -

En utilisant la méthode Pip

Vous pouvez utiliser la commande suivante pour installer MXNet sur votre système d'exploitation Linus

pip install mxnet

En utilisant Docker

Vous pouvez trouver les images du docker avec MXNet sur DockerHub, disponible sur https://hub.docker.com/u/mxnet. Laissez-nous vérifier les étapes ci-dessous pour installer MXNet en utilisant Docker avec CPU−

Step 1- Premièrement, en suivant le docker installation instructions qui sont disponibles à https://docs.docker.com/docker-for-mac nous devons installer Docker sur notre machine.

Step 2- En utilisant la commande suivante, vous pouvez extraire l'image du docker MXNet -

$ docker pull mxnet/python

Maintenant, afin de voir si l'extraction d'image docker mxnet / python a réussi, nous pouvons lister les images docker comme suit -

$ docker images

Pour obtenir les vitesses d'inférence les plus rapides avec MXNet, il est recommandé d'utiliser le dernier MXNet avec Intel MKL-DNN. Vérifiez les commandes ci-dessous -

$ docker pull mxnet/python:1.3.0_cpu_mkl
$ docker images

De la source

Suivez les étapes ci-dessous pour installer MXNet à partir de la source sur OS X (Mac) -

Step 1- Comme nous avons besoin de certaines dépendances sur OS x, nous devons d'abord installer les packages prérequis.

xcode-select –-install #Install OS X Developer Tools
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" #Install Homebrew
brew install cmake ninja ccache opencv # Install dependencies

Nous pouvons également créer MXNet sans OpenCV car opencv est une dépendance facultative.

Step 2- Dans cette étape, nous téléchargerons la source MXNet et la configurerons. Tout d'abord, clonons le référentiel en utilisant la commande suivante -

git clone –-recursive https://github.com/apache/incubator-mxnet.git mxnet

cd mxnet

cp config/linux.cmake config.cmake

Step 3- En utilisant les commandes suivantes, vous pouvez créer la bibliothèque partagée MXNet Core:

rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .

Two important points regarding the above step is as follows−

Si vous souhaitez créer la version de débogage, spécifiez le comme suit -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Afin de définir le nombre de travaux de compilation parallèles, spécifiez ce qui suit:

cmake --build . --parallel N

Une fois que vous avez créé avec succès la bibliothèque partagée MXNet Core, dans le build dossier dans votre MXNet project root, tu trouveras libmxnet.dylib, qui est nécessaire pour installer les liaisons de langue (facultatif).

Système d'exploitation Windows

Pour installer MXNet sous Windows, voici les prérequis -

Configuration minimale requise

  • Windows 7, 10, Server 2012 R2 ou Server 2016

  • Visual Studio 2015 ou 2017 (tout type)

  • Python 2.7 ou 3.6

  • pip

Configuration recommandée

  • Windows 10, Server 2012 R2 ou Server 2016

  • Visual Studio 2017

  • Au moins un GPU compatible NVIDIA CUDA

  • Processeur compatible MKL: processeur Intel® Xeon®, famille de processeurs Intel® Core ™, processeur Intel Atom® ou processeur Intel® Xeon Phi ™

  • Python 2.7 ou 3.6

  • pip

Unité de traitement graphique (GPU)

En utilisant la méthode Pip -

Si vous prévoyez de créer MXNet sur Windows avec des GPU NVIDIA, il existe deux options pour installer MXNet avec prise en charge CUDA avec un package Python -

Installer avec le support CUDA

Voici les étapes à l'aide desquelles nous pouvons configurer MXNet avec CUDA.

Step 1- Installez d'abord Microsoft Visual Studio 2017 ou Microsoft Visual Studio 2015.

Step 2- Ensuite, téléchargez et installez NVIDIA CUDA. Il est recommandé d'utiliser les versions 9.2 ou 9.0 de CUDA car certains problèmes avec CUDA 9.1 ont été identifiés dans le passé.

Step 3- Maintenant, téléchargez et installez NVIDIA_CUDA_DNN.

Step 4- Enfin, en utilisant la commande pip suivante, installez MXNet avec CUDA−

pip install mxnet-cu92

Installer avec le support CUDA et MKL

Vous trouverez ci-dessous les étapes à l'aide desquelles nous pouvons configurer MXNet avec CUDA et MKL.

Step 1- Installez d'abord Microsoft Visual Studio 2017 ou Microsoft Visual Studio 2015.

Step 2- Ensuite, téléchargez et installez Intel MKL

Step 3- Maintenant, téléchargez et installez NVIDIA CUDA.

Step 4- Maintenant, téléchargez et installez NVIDIA_CUDA_DNN.

Step 5- Enfin, en utilisant la commande pip suivante, installez MXNet avec MKL.

pip install mxnet-cu92mkl

De la source

Pour créer la bibliothèque principale MXNet à partir des sources avec GPU, nous avons les deux options suivantes:

Option 1− Build with Microsoft Visual Studio 2017

Pour créer et installer vous-même MXNet à l'aide de Microsoft Visual Studio 2017, vous avez besoin des dépendances suivantes.

Install/update Microsoft Visual Studio.

  • Si Microsoft Visual Studio n'est pas déjà installé sur votre ordinateur, commencez par le télécharger et l'installer.

  • Il vous demandera d'installer Git. Installez-le également.

  • Si Microsoft Visual Studio est déjà installé sur votre ordinateur mais que vous souhaitez le mettre à jour, passez à l'étape suivante pour modifier votre installation. Ici, vous aurez également la possibilité de mettre à jour Microsoft Visual Studio.

Suivez les instructions pour ouvrir le programme d'installation de Visual Studio disponible sur https://docs.microsoft.com/en-us pour modifier des composants individuels.

Dans l'application Visual Studio Installer, mettez à jour si nécessaire. Après cela, cherchez et vérifiezVC++ 2017 version 15.4 v14.11 toolset et cliquez Modify.

Maintenant, en utilisant la commande suivante, changez la version de Microsoft VS2017 en v14.11−

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.11

Ensuite, vous devez télécharger et installer CMake disponible à https://cmake.org/download/ Il est recommandé d'utiliser CMake v3.12.2 qui est disponible à https://cmake.org/download/ car il est testé avec MXNet.

Maintenant, téléchargez et exécutez le OpenCV forfait disponible à https://sourceforge.net/projects/opencvlibrary/qui décompressera plusieurs fichiers. C'est à vous de décider si vous souhaitez les placer ou non dans un autre répertoire. Ici, nous allons utiliser le cheminC:\utils(mkdir C:\utils) comme chemin par défaut.

Ensuite, nous devons définir la variable d'environnement OpenCV_DIR pour qu'elle pointe vers le répertoire de construction OpenCV que nous venons de décompresser. Pour cette invite de commande ouverte et tapezset OpenCV_DIR=C:\utils\opencv\build.

Un point important est que si vous n'avez pas installé Intel MKL (Math Kernel Library), vous pouvez l'installer.

Un autre package open source que vous pouvez utiliser est OpenBLAS. Ici pour les instructions supplémentaires, nous supposons que vous utilisezOpenBLAS.

Alors, téléchargez le OpenBlas package disponible sur https://sourceforge.net et décompressez le fichier, renommez-le en OpenBLAS et le mettre sous C:\utils.

Ensuite, nous devons définir la variable d'environnement OpenBLAS_HOME pour pointer vers le répertoire OpenBLAS qui contient le include et librépertoires. Pour cette invite de commande ouverte et tapezset OpenBLAS_HOME=C:\utils\OpenBLAS.

Maintenant, téléchargez et installez CUDA disponible sur https://developer.nvidia.com. Notez que, si vous aviez déjà CUDA, puis installé Microsoft VS2017, vous devez réinstaller CUDA maintenant, afin de pouvoir obtenir les composants de la boîte à outils CUDA pour l'intégration de Microsoft VS2017.

Ensuite, vous devez télécharger et installer cuDNN.

Ensuite, vous devez télécharger et installer git qui se trouve à https://gitforwindows.org/ également.

Une fois que vous avez installé toutes les dépendances requises, suivez les étapes ci-dessous pour créer le code source MXNet -

Step 1- Ouvrez l'invite de commande dans Windows.

Step 2- Maintenant, en utilisant la commande suivante, téléchargez le code source MXNet depuis GitHub:

cd C:\

git clone https://github.com/apache/incubator-mxnet.git --recursive

Step 3- Ensuite, vérifiez ce qui suit -

DCUDNN_INCLUDE and DCUDNN_LIBRARY les variables d'environnement pointent vers include dossier et cudnn.lib fichier de l'emplacement d'installation de CUDA

C:\incubator-mxnet est l'emplacement du code source que vous venez de cloner à l'étape précédente.

Step 4- Ensuite, en utilisant la commande suivante, créez un build directory et allez aussi dans le répertoire, par exemple -

mkdir C:\incubator-mxnet\build
cd C:\incubator-mxnet\build

Step 5- Maintenant, en utilisant cmake, compilez le code source MXNet comme suit -

cmake -G "Visual Studio 15 2017 Win64" -T cuda=9.2,host=x64 -DUSE_CUDA=1 -DUSE_CUDNN=1 -DUSE_NVRTC=1 -DUSE_OPENCV=1 -DUSE_OPENMP=1 -DUSE_BLAS=open -DUSE_LAPACK=1 -DUSE_DIST_KVSTORE=0 -DCUDA_ARCH_LIST=Common -DCUDA_TOOLSET=9.2 -DCUDNN_INCLUDE=C:\cuda\include -DCUDNN_LIBRARY=C:\cuda\lib\x64\cudnn.lib "C:\incubator-mxnet"

Step 6- Une fois le CMake terminé avec succès, utilisez la commande suivante pour compiler le code source MXNet -

msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount

Option 2: Build with Microsoft Visual Studio 2015

Pour créer et installer vous-même MXNet à l'aide de Microsoft Visual Studio 2015, vous avez besoin des dépendances suivantes.

Installez / mettez à jour Microsoft Visual Studio 2015. La configuration minimale requise pour générer MXnet à partir de la source est la mise à jour 3 de Microsoft Visual Studio 2015. Vous pouvez utiliser Tools -> Extensions and Updates... | Product Updates menu pour le mettre à jour.

Ensuite, vous devez télécharger et installer CMake qui est disponible à https://cmake.org/download/. Il est recommandé d'utiliserCMake v3.12.2 qui est à https://cmake.org/download/, car il est testé avec MXNet.

Maintenant, téléchargez et exécutez le package OpenCV disponible sur https://excellmedia.dl.sourceforge.netqui décompressera plusieurs fichiers. C'est à vous de décider si vous souhaitez les placer dans un autre répertoire ou non.

Ensuite, nous devons définir la variable d'environnement OpenCV_DIR pour pointer vers le OpenCVrépertoire de construction que nous venons de décompresser. Pour cela, ouvrez l'invite de commande et tapez setOpenCV_DIR=C:\opencv\build\x64\vc14\bin.

Un point important est que si vous n'avez pas installé Intel MKL (Math Kernel Library), vous pouvez l'installer.

Un autre package open source que vous pouvez utiliser est OpenBLAS. Ici pour les instructions supplémentaires, nous supposons que vous utilisezOpenBLAS.

Alors, téléchargez le OpenBLAS forfait disponible à https://excellmedia.dl.sourceforge.net et décompressez le fichier, renommez-le en OpenBLAS et placez-le sous C: \ utils.

Ensuite, nous devons définir la variable d'environnement OpenBLAS_HOME pour qu'elle pointe vers le répertoire OpenBLAS qui contient les répertoires include et lib. Vous pouvez trouver le répertoire dansC:\Program files (x86)\OpenBLAS\

Notez que, si vous aviez déjà CUDA, puis installé Microsoft VS2015, vous devez réinstaller CUDA maintenant afin que vous puissiez obtenir les composants de la boîte à outils CUDA pour l'intégration de Microsoft VS2017.

Ensuite, vous devez télécharger et installer cuDNN.

Maintenant, nous devons définir la variable d'environnement CUDACXX pour qu'elle pointe vers le CUDA Compiler(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe par exemple).

De même, nous devons également définir la variable d'environnement CUDNN_ROOT pour pointer vers le cuDNN répertoire qui contient le include, lib et bin répertoires (C:\Downloads\cudnn-9.1-windows7-x64-v7\cuda par exemple).

Une fois que vous avez installé toutes les dépendances requises, suivez les étapes ci-dessous pour créer le code source MXNet -

Step 1- Tout d'abord, téléchargez le code source MXNet depuis GitHub−

cd C:\
git clone https://github.com/apache/incubator-mxnet.git --recursive

Step 2- Ensuite, utilisez CMake pour créer un Visual Studio dans ./build.

Step 3- Maintenant, dans Visual Studio, nous devons ouvrir le fichier de solution,.sln, et compilez-le. Ces commandes produiront une bibliothèque appeléemxnet.dll dans le ./build/Release/ or ./build/Debug dossier

Step 4- Une fois le CMake terminé, utilisez la commande suivante pour compiler le code source MXNet

msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount

Unité centrale de traitement (CPU)

Ici, nous utiliserons diverses méthodes à savoir Pip, Docker et Source pour installer MXNet lorsque nous utilisons le processeur pour le traitement -

En utilisant la méthode Pip

Si vous prévoyez de construire MXNet sur Windows avec des CPU, il existe deux options pour installer MXNet à l'aide d'un package Python -

Install with CPUs

Utilisez la commande suivante pour installer MXNet avec CPU avec Python−

pip install mxnet

Install with Intel CPUs

Comme indiqué ci-dessus, MXNet a un support expérimental pour Intel MKL ainsi que MKL-DNN. Utilisez la commande suivante pour installer MXNet avec Intel CPU avec Python−

pip install mxnet-mkl

En utilisant Docker

Vous pouvez trouver les images du docker avec MXNet sur DockerHub, disponible à https://hub.docker.com/u/mxnet Laissez-nous vérifier les étapes ci-dessous, pour installer MXNet en utilisant Docker avec CPU−

Step 1- Tout d'abord, en suivant les instructions d'installation du docker qui peuvent être lues sur https://docs.docker.com/docker-for-mac/install. Nous devons installer Docker sur notre machine.

Step 2- En utilisant la commande suivante, vous pouvez extraire l'image du docker MXNet -

$ docker pull mxnet/python

Maintenant, afin de voir si l'extraction d'image docker mxnet / python a réussi, nous pouvons lister les images docker comme suit -

$ docker images

Pour obtenir les vitesses d'inférence les plus rapides avec MXNet, il est recommandé d'utiliser le dernier MXNet avec Intel MKL-DNN.

Vérifiez les commandes ci-dessous -

$ docker pull mxnet/python:1.3.0_cpu_mkl
$ docker images

Installation de MXNet sur le cloud et les appareils

Cette section explique comment installer Apache MXNet sur le cloud et sur les appareils. Commençons par apprendre à installer MXNet sur le cloud.

Installer MXNet sur le cloud

Vous pouvez également obtenir Apache MXNet sur plusieurs fournisseurs de cloud avec Graphical Processing Unit (GPU)soutien. Deux autres types de support que vous pouvez trouver sont les suivants:

  • Prise en charge hybride GPU / CPU pour des cas d'utilisation tels que l'inférence évolutive.
  • Prise en charge des GPU factoriels avec AWS Elastic Inference.

Voici les fournisseurs de cloud fournissant une prise en charge GPU avec différentes machines virtuelles pour Apache MXNet−

La console Alibaba

Vous pouvez créer le NVIDIA GPU Cloud Virtual Machine (VM) disponible à https://docs.nvidia.com/ngc avec la console Alibaba et utilisez Apache MXNet.

Services Web Amazon

Il fournit également un support GPU et fournit les services suivants pour Apache MXNet−

Amazon SageMaker

Il gère la formation et le déploiement des modèles Apache MXNet.

AMI AWS Deep Learning

Il fournit un environnement Conda préinstallé pour Python 2 et Python 3 avec Apache MXNet, CUDA, cuDNN, MKL-DNN et AWS Elastic Inference.

Formation dynamique sur AWS

Il fournit la formation pour la configuration EC2 manuelle expérimentale ainsi que pour la configuration semi-automatisée de CloudFormation.

Vous pouvez utiliser NVIDIA VM disponible à https://aws.amazon.com avec les services Web d'Amazon.

Google Cloud Platform

Google fournit également NVIDIA GPU cloud image qui est disponible à https://console.cloud.google.com pour travailler avec Apache MXNet.

Microsoft Azure

Microsoft Azure Marketplace fournit également NVIDIA GPU cloud image disponible à https://azuremarketplace.microsoft.com pour travailler avec Apache MXNet.

Oracle Cloud

Oracle fournit également NVIDIA GPU cloud image disponible à https://docs.cloud.oracle.com pour travailler avec Apache MXNet.

Unité centrale de traitement (CPU)

Apache MXNet fonctionne sur l'instance de processeur uniquement de chaque fournisseur de cloud. Il existe différentes méthodes d'installation telles que -

  • Instructions d'installation de Python pip.

  • Instructions Docker.

  • Option préinstallée comme Amazon Web Services qui fournit AWS Deep Learning AMI (ayant préinstallé l'environnement Conda pour Python 2 et Python 3 avec MXNet et MKL-DNN).

Installation de MXNet sur des appareils

Apprenons à installer MXNet sur les appareils.

Tarte aux framboises

Vous pouvez également exécuter Apache MXNet sur les appareils Raspberry Pi 3B car MXNet prend également en charge le système d'exploitation basé sur Respbian ARM. Afin d'exécuter MXNet en douceur sur le Raspberry Pi3, il est recommandé de disposer d'un appareil disposant de plus de 1 Go de RAM et d'une carte SD avec au moins 4 Go d'espace libre.

Voici les moyens à l'aide desquels vous pouvez créer MXNet pour le Raspberry Pi et installer également les liaisons Python pour la bibliothèque -

Installation rapide

La roue Python pré-construite peut être utilisée sur un Raspberry Pi 3B avec Stretch pour une installation rapide. L'un des problèmes importants de cette méthode est que nous devons installer plusieurs dépendances pour faire fonctionner Apache MXNet.

Installation de Docker

Vous pouvez suivre les instructions d'installation du docker, disponibles sur https://docs.docker.com/engine/install/ubuntu/pour installer Docker sur votre machine. À cette fin, nous pouvons également installer et utiliser Community Edition (CE).

Construction native (à partir de la source)

Afin d'installer MXNet à partir de la source, nous devons suivre les deux étapes suivantes -

Étape 1

Build the shared library from the Apache MXNet C++ source code

Pour créer la bibliothèque partagée sur la version Raspberry Wheezy et versions ultérieures, nous avons besoin des dépendances suivantes:

  • Git- Il est nécessaire d'extraire le code de GitHub.

  • Libblas- Il est nécessaire pour les opérations algébriques linéaires.

  • Libopencv- Il est nécessaire pour les opérations liées à la vision par ordinateur. Cependant, il est facultatif si vous souhaitez économiser votre RAM et votre espace disque.

  • C++ Compiler- Il est nécessaire pour compiler et construire le code source MXNet. Voici les compilateurs pris en charge qui prennent en charge C ++ 11−

    • G ++ (version 4.8 ou ultérieure)

    • Clang(3.9-6)

Utilisez les commandes suivantes pour installer les dépendances mentionnées ci-dessus -

sudo apt-get update
sudo apt-get -y install git cmake ninja-build build-essential g++-4.9 c++-4.9 liblapack*
libblas* libopencv*
libopenblas* python3-dev python-dev virtualenv

Ensuite, nous devons cloner le référentiel de code source MXNet. Pour cela, utilisez la commande git suivante dans votre répertoire personnel -

git clone https://github.com/apache/incubator-mxnet.git --recursive

cd incubator-mxnet

Maintenant, à l'aide des commandes suivantes, créez la bibliothèque partagée:

mkdir -p build && cd build
cmake \
-DUSE_SSE=OFF \
-DUSE_CUDA=OFF \
-DUSE_OPENCV=ON \
-DUSE_OPENMP=ON \
-DUSE_MKL_IF_AVAILABLE=OFF \
-DUSE_SIGNAL_HANDLER=ON \

-DCMAKE_BUILD_TYPE=Release \
-GNinja ..
ninja -j$(nproc)

Une fois que vous exécutez les commandes ci-dessus, il démarrera le processus de construction qui prendra quelques heures pour se terminer. Vous obtiendrez un fichier nommélibmxnet.so dans le répertoire de construction.

Étape 2

Install the supported language-specific packages for Apache MXNet

Dans cette étape, nous installerons les liaisons MXNet Pythin. Pour ce faire, nous devons exécuter la commande suivante dans le répertoire MXNet -

cd python
pip install --upgrade pip
pip install -e .

Alternativement, avec la commande suivante, vous pouvez également créer un whl package installable avec pip-

ci/docker/runtime_functions.sh build_wheel python/ $(realpath build)

Périphériques NVIDIA Jetson

Vous pouvez également exécuter Apache MXNet sur des appareils NVIDIA Jetson, tels que TX2 ou Nanocar MXNet prend également en charge le système d'exploitation basé sur Ubuntu Arch64. Afin d'exécuter MXNet en douceur sur les appareils NVIDIA Jetson, il est nécessaire d'installer CUDA sur votre appareil Jetson.

Voici les moyens à l'aide desquels vous pouvez créer MXNet pour les appareils NVIDIA Jetson:

  • En utilisant une molette Jetson MXNet pip pour le développement Python

  • De la source

Mais avant de créer MXNet à partir de l'une des méthodes mentionnées ci-dessus, vous devez installer les dépendances suivantes sur vos appareils Jetson -

Dépendances Python

Pour utiliser l'API Python, nous avons besoin des dépendances suivantes:

sudo apt update
sudo apt -y install \
   build-essential \
   git \
   graphviz \
   libatlas-base-dev \
   libopencv-dev \
   python-pip
sudo pip install --upgrade \
   pip \
   setuptools
sudo pip install \
   graphviz==0.8.4 \
   jupyter \
   numpy==1.15.2

Cloner le référentiel de code source MXNet

En utilisant la commande git suivante dans votre répertoire personnel, clonez le référentiel de code source MXNet -

git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet

Variables d'environnement de configuration

Ajoutez ce qui suit dans votre .profile fichier dans votre répertoire personnel -

export PATH=/usr/local/cuda/bin:$PATH
export MXNET_HOME=$HOME/mxnet/
export PYTHONPATH=$MXNET_HOME/python:$PYTHONPATH

Maintenant, appliquez le changement immédiatement avec la commande suivante -

source .profile

Configurer CUDA

Avant de configurer CUDA, avec nvcc, vous devez vérifier quelle version de CUDA est en cours d'exécution -

nvcc --version

Supposons que, si plusieurs versions de CUDA sont installées sur votre appareil ou ordinateur et que vous souhaitez changer de version de CUDA, utilisez ce qui suit et remplacez le lien symbolique vers la version souhaitée -

sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda

La commande ci-dessus passera à CUDA 10.0, qui est préinstallée sur l'appareil NVIDIA Jetson Nano.

Une fois que vous avez terminé avec les prérequis mentionnés ci-dessus, vous pouvez maintenant installer MXNet sur les appareils NVIDIA Jetson. Alors, laissez-nous comprendre les moyens à l'aide desquels vous pouvez installer MXNet−

By using a Jetson MXNet pip wheel for Python development- Si vous souhaitez utiliser une roue Python préparée, téléchargez ce qui suit sur votre Jetson et exécutez-le -

Construction native (à partir de la source)

Afin d'installer MXNet à partir de la source, nous devons suivre les deux étapes suivantes -

Étape 1

Build the shared library from the Apache MXNet C++ source code

Pour créer la bibliothèque partagée à partir du code source Apache MXNet C ++, vous pouvez soit utiliser la méthode Docker, soit le faire manuellement -

Méthode Docker

Dans cette méthode, vous devez d'abord installer Docker et pouvoir l'exécuter sans sudo (ce qui est également expliqué dans les étapes précédentes). Une fois cela fait, exécutez ce qui suit pour exécuter la compilation croisée via Docker−

$MXNET_HOME/ci/build.py -p jetson

Manuel

Dans cette méthode, vous devez modifier le Makefile (avec la commande ci-dessous) pour installer le MXNet avec des liaisons CUDA afin de tirer parti des unités de traitement graphique (GPU) sur les appareils NVIDIA Jetson:

cp $MXNET_HOME/make/crosscompile.jetson.mk config.mk

Après avoir modifié le Makefile, vous devez modifier le fichier config.mk pour apporter des modifications supplémentaires au périphérique NVIDIA Jetson.

Pour cela, mettez à jour les paramètres suivants -

  • Mettez à jour le chemin CUDA: USE_CUDA_PATH = / usr / local / cuda

  • Ajoutez -gencode arch = compute-63, code = sm_62 au paramètre CUDA_ARCH.

  • Mettez à jour les paramètres NVCC: NVCCFLAGS: = -m64

  • Activez OpenCV: USE_OPENCV = 1

Maintenant, pour nous assurer que le MXNet se construit avec l'accélération de basse précision au niveau matériel de Pascal, nous devons éditer le Makefile Mshadow comme suit:

MSHADOW_CFLAGS += -DMSHADOW_USE_PASCAL=1

Enfin, à l'aide de la commande suivante, vous pouvez créer la bibliothèque Apache MXNet complète -

cd $MXNET_HOME
make -j $(nproc)

Une fois que vous exécutez les commandes ci-dessus, il démarrera le processus de construction qui prendra quelques heures pour se terminer. Vous obtiendrez un fichier nommélibmxnet.so dans le mxnet/lib directory.

Étape 2

Install the Apache MXNet Python Bindings

Dans cette étape, nous installerons les liaisons MXNet Python. Pour ce faire, nous devons exécuter la commande suivante dans le répertoire MXNet -

cd $MXNET_HOME/python
sudo pip install -e .

Une fois les étapes ci-dessus terminées, vous êtes maintenant prêt à exécuter MXNet sur vos appareils NVIDIA Jetson TX2 ou Nano. Il peut être vérifié avec la commande suivante -

import mxnet
mxnet.__version__

Il renverra le numéro de version si tout fonctionne correctement.