Apache MXNet - Installazione di MXNet

Per iniziare con MXNet, la prima cosa che dobbiamo fare è installarlo sul nostro computer. Apache MXNet funziona praticamente su tutte le piattaforme disponibili, inclusi Windows, Mac e Linux.

Sistema operativo Linux

Possiamo installare MXNet su sistema operativo Linux nei seguenti modi:

Unità di elaborazione grafica (GPU)

Qui, utilizzeremo vari metodi, ovvero Pip, Docker e Source per installare MXNet quando utilizziamo la GPU per l'elaborazione -

Utilizzando il metodo Pip

Puoi utilizzare il seguente comando per installare MXNet sul tuo sistema operativo Linus:

pip install mxnet

Apache MXNet offre anche pacchetti pip MKL, che sono molto più veloci se eseguiti su hardware Intel. Qui per esempiomxnet-cu101mkl significa che -

  • Il pacchetto è costruito con CUDA / cuDNN

  • Il pacchetto è abilitato per MKL-DNN

  • La versione CUDA è la 10.1

Per altre opzioni puoi anche fare riferimento https://pypi.org/project/mxnet/.

Utilizzando Docker

Puoi trovare le immagini docker con MXNet su DockerHub, disponibile all'indirizzo https://hub.docker.com/u/mxnet Esaminiamo i passaggi seguenti per installare MXNet utilizzando Docker con GPU -

Step 1- Innanzitutto, seguendo le istruzioni di installazione del docker disponibili su https://docs.docker.com/engine/install/ubuntu/. Dobbiamo installare Docker sulla nostra macchina.

Step 2- Per abilitare l'utilizzo delle GPU dai container docker, successivamente dobbiamo installare nvidia-docker-plugin. È possibile seguire le istruzioni di installazione fornite suhttps://github.com/NVIDIA/nvidia-docker/wiki.

Step 3- Utilizzando il seguente comando, puoi estrarre l'immagine docker di MXNet -

$ sudo docker pull mxnet/python:gpu

Ora per vedere se il pull dell'immagine docker mxnet / python ha avuto successo, possiamo elencare le immagini docker come segue:

$ sudo docker images

Per le velocità di inferenza più elevate con MXNet, si consiglia di utilizzare l'ultima MXNet con Intel MKL-DNN. Controlla i comandi seguenti:

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

Dalla fonte

Per creare la libreria condivisa MXNet dall'origine con GPU, prima dobbiamo configurare l'ambiente per CUDA e cuDNN come segue:

  • Scarica e installa il toolkit CUDA, qui si consiglia CUDA 9.2.

  • Quindi scarica cuDNN 7.1.4.

  • Ora dobbiamo decomprimere il file. È inoltre necessario passare alla directory principale cuDNN. Spostare anche l'intestazione e le librerie nella cartella CUDA Toolkit locale come segue:

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

Dopo aver configurato l'ambiente per CUDA e cuDNN, segui i passaggi seguenti per creare la libreria condivisa MXNet dall'origine:

Step 1- Per prima cosa, dobbiamo installare i pacchetti prerequisiti. Queste dipendenze sono richieste su Ubuntu versione 16.04 o successiva.

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

Step 2- In questo passaggio, scaricheremo il sorgente MXNet e lo configureremo. Per prima cosa cloniamo il repository usando il seguente comando-

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

Step 3- Utilizzando i seguenti comandi, puoi creare la libreria condivisa principale di MXNet

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

Two important points regarding the above step is as follows−

Se vuoi creare la versione di debug, specifica quanto segue -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Per impostare il numero di lavori di compilazione parallela, specificare quanto segue:

cmake --build . --parallel N

Dopo aver creato con successo la libreria condivisa principale di MXNet, in build cartella nel tuo MXNet project root, troverai libmxnet.so che è richiesto per installare i collegamenti della lingua (opzionale).

Unità di elaborazione centrale (CPU)

Qui, utilizzeremo vari metodi, ovvero Pip, Docker e Source per installare MXNet quando utilizziamo la CPU per l'elaborazione -

Utilizzando il metodo Pip

Puoi usare il seguente comando per installare MXNet sul tuo sistema operativo Linus -

pip install mxnet

Apache MXNet offre anche pacchetti pip abilitati per MKL-DNN che sono molto più veloci quando vengono eseguiti su hardware Intel.

pip install mxnet-mkl

Utilizzando Docker

Puoi trovare le immagini docker con MXNet su DockerHub, disponibile all'indirizzo https://hub.docker.com/u/mxnet. Esaminiamo i passaggi seguenti per installare MXNet utilizzando Docker con CPU -

Step 1- Innanzitutto, seguendo le istruzioni di installazione del docker disponibili su https://docs.docker.com/engine/install/ubuntu/. Dobbiamo installare Docker sulla nostra macchina.

Step 2- Utilizzando il seguente comando, puoi estrarre l'immagine docker di MXNet:

$ sudo docker pull mxnet/python

Ora, per vedere se il pull dell'immagine docker mxnet / python ha avuto successo, possiamo elencare le immagini docker come segue:

$ sudo docker images

Per le velocità di inferenza più elevate con MXNet, si consiglia di utilizzare l'ultima MXNet con Intel MKL-DNN.

Controlla i comandi seguenti:

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

Dalla fonte

Per creare la libreria condivisa MXNet dall'origine con la CPU, segui i passaggi seguenti:

Step 1- Per prima cosa, dobbiamo installare i pacchetti prerequisiti. Queste dipendenze sono richieste su Ubuntu versione 16.04 o successiva.

sudo apt-get update

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

Step 2- In questo passaggio scaricheremo il sorgente MXNet e lo configureremo. Per prima cosa cloniamo il repository usando il seguente comando:

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

cd mxnet
cp config/linux.cmake config.cmake

Step 3- Utilizzando i seguenti comandi, puoi creare la libreria condivisa principale di MXNet:

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

Two important points regarding the above step is as follows−

Se desideri creare la versione di debug, specifica quanto segue:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Per impostare il numero di lavori di compilazione parallela, specificare quanto segue -

cmake --build . --parallel N

Dopo aver creato con successo la libreria condivisa principale di MXNet, in build nella cartella principale del tuo progetto MXNet, troverai libmxnet.so, che è richiesto per installare i collegamenti della lingua (opzionale).

Mac OS

Possiamo installare MXNet su MacOS nei seguenti modi:

Unità di elaborazione grafica (GPU)

Se prevedi di creare MXNet su MacOS con GPU, NON sono disponibili metodi Pip e Docker. L'unico metodo in questo caso è crearlo dal sorgente.

Dalla fonte

Per creare la libreria condivisa MXNet dall'origine con GPU, prima dobbiamo configurare l'ambiente per CUDA e cuDNN. Devi seguire ilNVIDIA CUDA Installation Guide disponibile all'indirizzo https://docs.nvidia.com e cuDNN Installation Guide, disponibile all'indirizzo https://docs.nvidia.com/deeplearning per mac OS.

Tieni presente che nel 2019 CUDA ha smesso di supportare macOS. In effetti, anche le future versioni di CUDA potrebbero non supportare macOS.

Dopo aver configurato l'ambiente per CUDA e cuDNN, segui i passaggi indicati di seguito per installare MXNet dalla sorgente su OS X (Mac) -

Step 1- Poiché abbiamo bisogno di alcune dipendenze su OS x, in primo luogo, dobbiamo installare i pacchetti prerequisiti.

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

Possiamo anche creare MXNet senza OpenCV poiché opencv è una dipendenza opzionale.

Step 2- In questo passaggio scaricheremo il sorgente MXNet e lo configureremo. Per prima cosa cloniamo il repository usando il seguente comando-

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

cd mxnet
cp config/linux.cmake config.cmake

Per una GPU abilitata, è necessario installare prima le dipendenze CUDA perché quando si tenta di creare una build abilitata per GPU su una macchina senza GPU, la build MXNet non può rilevare automaticamente l'architettura della GPU. In questi casi MXNet prenderà di mira tutte le architetture GPU disponibili.

Step 3- Utilizzando i seguenti comandi, puoi creare la libreria condivisa principale di MXNet

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

Due punti importanti riguardo al passaggio precedente sono i seguenti:

Se vuoi creare la versione di debug, specifica quanto segue -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Per impostare il numero di lavori di compilazione parallela, specificare quanto segue:

cmake --build . --parallel N

Dopo aver creato con successo la libreria condivisa principale di MXNet, in build cartella nel tuo MXNet project root, troverai libmxnet.dylib, che è richiesto per installare i collegamenti della lingua (opzionale).

Unità di elaborazione centrale (CPU)

Qui, useremo vari metodi, ovvero Pip, Docker e Source per installare MXNet quando usiamo la CPU per l'elaborazione

Utilizzando il metodo Pip

Puoi usare il seguente comando per installare MXNet sul tuo sistema operativo Linus

pip install mxnet

Utilizzando Docker

Puoi trovare le immagini docker con MXNet su DockerHub, disponibile all'indirizzo https://hub.docker.com/u/mxnet. Esaminiamo i passaggi seguenti per installare MXNet utilizzando Docker con CPU−

Step 1- In primo luogo, seguendo il docker installation instructions disponibili su https://docs.docker.com/docker-for-mac dobbiamo installare Docker sulla nostra macchina.

Step 2- Usando il seguente comando, puoi estrarre l'immagine docker di MXNet -

$ docker pull mxnet/python

Ora per vedere se il pull dell'immagine docker mxnet / python ha avuto successo, possiamo elencare le immagini docker come segue:

$ docker images

Per le velocità di inferenza più elevate con MXNet, si consiglia di utilizzare l'ultima MXNet con Intel MKL-DNN. Controlla i comandi sottostanti -

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

Dalla fonte

Segui i passaggi indicati di seguito per installare MXNet dalla sorgente su OS X (Mac) -

Step 1- Poiché abbiamo bisogno di alcune dipendenze da OS x, prima dobbiamo installare i pacchetti prerequisiti.

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

Possiamo anche creare MXNet senza OpenCV poiché opencv è una dipendenza opzionale.

Step 2- In questo passaggio scaricheremo il sorgente MXNet e lo configureremo. Per prima cosa, cloniamo il repository usando il seguente comando-

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

cd mxnet

cp config/linux.cmake config.cmake

Step 3- Utilizzando i seguenti comandi, puoi creare la libreria condivisa principale di MXNet:

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

Two important points regarding the above step is as follows−

Se vuoi creare la versione di debug, specifica quanto segue -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Per impostare il numero di lavori di compilazione parallela, specificare quanto segue -

cmake --build . --parallel N

Dopo aver creato con successo la libreria condivisa principale di MXNet, in build cartella nel tuo MXNet project root, troverai libmxnet.dylib, che è richiesto per installare i collegamenti della lingua (opzionale).

Sistema operativo Windows

Per installare MXNet su Windows, i seguenti sono i prerequisiti:

requisiti minimi di sistema

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

  • Visual Studio 2015 o 2017 (qualsiasi tipo)

  • Python 2.7 o 3.6

  • pip

Requisiti di sistema raccomandati

  • Windows 10, Server 2012 R2 o Server 2016

  • Visual Studio 2017

  • Almeno una GPU abilitata per NVIDIA CUDA

  • CPU abilitata per MKL: processore Intel® Xeon®, famiglia di processori Intel® Core ™, processore Intel Atom® o processore Intel® Xeon Phi ™

  • Python 2.7 o 3.6

  • pip

Unità di elaborazione grafica (GPU)

Usando il metodo Pip -

Se prevedi di creare MXNet su Windows con GPU NVIDIA, ci sono due opzioni per installare MXNet con supporto CUDA con un pacchetto Python:

Installa con il supporto CUDA

Di seguito sono riportati i passaggi con l'aiuto dei quali possiamo configurare MXNet con CUDA.

Step 1- Prima installa Microsoft Visual Studio 2017 o Microsoft Visual Studio 2015.

Step 2- Quindi, scarica e installa NVIDIA CUDA. Si consiglia di utilizzare le versioni CUDA 9.2 o 9.0 perché in passato sono stati identificati alcuni problemi con CUDA 9.1.

Step 3- Ora scarica e installa NVIDIA_CUDA_DNN.

Step 4- Infine, utilizzando il seguente comando pip, installa MXNet con CUDA-

pip install mxnet-cu92

Installa con CUDA e MKL Support

Di seguito sono riportati i passaggi con l'aiuto dei quali possiamo configurare MXNet con CUDA e MKL.

Step 1- Prima installa Microsoft Visual Studio 2017 o Microsoft Visual Studio 2015.

Step 2- Successivamente, scarica e installa intel MKL

Step 3- Ora scarica e installa NVIDIA CUDA.

Step 4- Ora scarica e installa NVIDIA_CUDA_DNN.

Step 5- Infine, utilizzando il seguente comando pip, installa MXNet con MKL.

pip install mxnet-cu92mkl

Dalla fonte

Per creare la libreria principale MXNet dalla sorgente con GPU, abbiamo le seguenti due opzioni:

Option 1− Build with Microsoft Visual Studio 2017

Per creare e installare MXNet da soli utilizzando Microsoft Visual Studio 2017, sono necessarie le seguenti dipendenze.

Install/update Microsoft Visual Studio.

  • Se Microsoft Visual Studio non è già installato sul tuo computer, devi prima scaricarlo e installarlo.

  • Verrà chiesto di installare Git. Installalo anche.

  • Se Microsoft Visual Studio è già installato sul computer ma si desidera aggiornarlo, procedere al passaggio successivo per modificare l'installazione. Qui ti verrà data l'opportunità di aggiornare anche Microsoft Visual Studio.

Segui le istruzioni per aprire il programma di installazione di Visual Studio disponibile all'indirizzo https://docs.microsoft.com/en-us per modificare i singoli componenti.

Nell'applicazione Visual Studio Installer, aggiorna come richiesto. Dopodiché cerca e controllaVC++ 2017 version 15.4 v14.11 toolset e fare clic Modify.

Ora usando il seguente comando, cambia la versione di Microsoft VS2017 in v14.11-

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

Successivamente, è necessario scaricare e installare CMake disponibile a https://cmake.org/download/ Si consiglia di utilizzare CMake v3.12.2 disponibile all'indirizzo https://cmake.org/download/ perché è testato con MXNet.

Ora scarica ed esegui il file OpenCV pacchetto disponibile su https://sourceforge.net/projects/opencvlibrary/che decomprimerà diversi file. Sta a te decidere se metterli in un'altra directory o meno. Qui useremo il percorsoC:\utils(mkdir C:\utils) come nostro percorso predefinito.

Successivamente, dobbiamo impostare la variabile d'ambiente OpenCV_DIR in modo che punti alla directory di compilazione di OpenCV che abbiamo appena decompresso. Per questo prompt dei comandi aprire e digitareset OpenCV_DIR=C:\utils\opencv\build.

Un punto importante è che se non hai installato Intel MKL (Math Kernel Library) puoi installarlo.

Un altro pacchetto open source che puoi usare è OpenBLAS. Qui per ulteriori istruzioni che supponiamo tu stia utilizzandoOpenBLAS.

Quindi, scarica il file OpenBlas pacchetto disponibile su https://sourceforge.net e decomprimere il file, rinominarlo in OpenBLAS e metterlo sotto C:\utils.

Successivamente, dobbiamo impostare la variabile d'ambiente OpenBLAS_HOME per puntare alla directory OpenBLAS che contiene il file include e libdirectory. Per questo prompt dei comandi aprire e digitareset OpenBLAS_HOME=C:\utils\OpenBLAS.

Ora scarica e installa CUDA disponibile su https://developer.nvidia.com. Nota che, se avevi già CUDA, quindi hai installato Microsoft VS2017, devi reinstallare CUDA ora, in modo da poter ottenere i componenti del toolkit CUDA per l'integrazione di Microsoft VS2017.

Successivamente, è necessario scaricare e installare cuDNN.

Successivamente, devi scaricare e installare git che si trova in https://gitforwindows.org/ anche.

Dopo aver installato tutte le dipendenze richieste, segui i passaggi indicati di seguito per creare il codice sorgente MXNet

Step 1- Apri il prompt dei comandi in Windows.

Step 2- Ora, utilizzando il seguente comando, scarica il codice sorgente MXNet da GitHub:

cd C:\

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

Step 3- Quindi, verifica quanto segue -

DCUDNN_INCLUDE and DCUDNN_LIBRARY le variabili di ambiente puntano al file include cartella e cudnn.lib file della posizione di installazione di CUDA

C:\incubator-mxnet è la posizione del codice sorgente appena clonato nel passaggio precedente.

Step 4- Successivamente, utilizzando il seguente comando, crea una build directory e vai anche alla directory, per esempio -

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

Step 5- Ora, usando cmake, compila il codice sorgente di MXNet come segue -

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- Una volta completato con successo CMake, usa il seguente comando per compilare il codice sorgente MXNet -

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

Option 2: Build with Microsoft Visual Studio 2015

Per creare e installare MXNet da soli utilizzando Microsoft Visual Studio 2015, sono necessarie le seguenti dipendenze.

Installa / aggiorna Microsoft Visual Studio 2015. Il requisito minimo per creare MXnet dall'origine è l'aggiornamento 3 di Microsoft Visual Studio 2015. Puoi utilizzare Tools -> Extensions and Updates... | Product Updates menu per aggiornarlo.

Successivamente, è necessario scaricare e installare CMake disponibile all'indirizzo https://cmake.org/download/. Si consiglia di utilizzareCMake v3.12.2 che è a https://cmake.org/download/, perché è testato con MXNet.

Ora scarica ed esegui il pacchetto OpenCV disponibile su https://excellmedia.dl.sourceforge.netche decomprimerà diversi file. Dipende da te, se vuoi metterli in un'altra directory o meno.

Successivamente, dobbiamo impostare la variabile d'ambiente OpenCV_DIR per indicare il file OpenCVbuild directory che abbiamo appena decompresso. Per questo, apri il prompt dei comandi e digita setOpenCV_DIR=C:\opencv\build\x64\vc14\bin.

Un punto importante è che se non hai installato Intel MKL (Math Kernel Library) puoi installarlo.

Un altro pacchetto open source che puoi usare è OpenBLAS. Qui per ulteriori istruzioni che supponiamo tu stia utilizzandoOpenBLAS.

Quindi, scarica il file OpenBLAS pacchetto disponibile su https://excellmedia.dl.sourceforge.net e decomprimere il file, rinominarlo in OpenBLAS e inserirlo in C: \ utils.

Successivamente, è necessario impostare la variabile di ambiente OpenBLAS_HOME in modo che punti alla directory OpenBLAS che contiene le directory include e lib. Puoi trovare la directory inC:\Program files (x86)\OpenBLAS\

Nota che, se avevi già CUDA, quindi hai installato Microsoft VS2015, devi reinstallare CUDA ora in modo da poter ottenere i componenti del toolkit CUDA per l'integrazione di Microsoft VS2017.

Successivamente, è necessario scaricare e installare cuDNN.

Ora, dobbiamo impostare la variabile di ambiente CUDACXX in modo che punti al file CUDA Compiler(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe per esempio).

Allo stesso modo, dobbiamo anche impostare la variabile d'ambiente CUDNN_ROOT per indicare il file cuDNN directory che contiene il file include, lib e bin directory (C:\Downloads\cudnn-9.1-windows7-x64-v7\cuda per esempio).

Dopo aver installato tutte le dipendenze richieste, segui i passaggi indicati di seguito per creare il codice sorgente MXNet

Step 1- Innanzitutto, scarica il codice sorgente MXNet da GitHub-

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

Step 2- Successivamente, usa CMake per creare un Visual Studio in ./build.

Step 3- Ora, in Visual Studio, dobbiamo aprire il file della soluzione,.slne compilarlo. Questi comandi produrranno una libreria chiamatamxnet.dll nel ./build/Release/ or ./build/Debug cartella

Step 4- Una volta completato con successo CMake, utilizzare il seguente comando per compilare il codice sorgente MXNet

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

Unità di elaborazione centrale (CPU)

Qui, useremo vari metodi, ovvero Pip, Docker e Source per installare MXNet quando usiamo la CPU per l'elaborazione

Utilizzando il metodo Pip

Se prevedi di costruire MXNet su Windows con CPU, ci sono due opzioni per installare MXNet usando un pacchetto Python -

Install with CPUs

Usa il seguente comando per installare MXNet con CPU con Python−

pip install mxnet

Install with Intel CPUs

Come discusso in precedenza, MXNet ha il supporto sperimentale per Intel MKL e MKL-DNN. Usa il seguente comando per installare MXNet con CPU Intel con Python−

pip install mxnet-mkl

Utilizzando Docker

Puoi trovare le immagini della finestra mobile con MXNet su DockerHub, disponibile a https://hub.docker.com/u/mxnet Esaminiamo i passaggi seguenti per installare MXNet utilizzando Docker con CPU-

Step 1- Innanzitutto, seguendo le istruzioni di installazione del docker che possono essere lette su https://docs.docker.com/docker-for-mac/install. Dobbiamo installare Docker sulla nostra macchina.

Step 2- Usando il seguente comando, puoi estrarre l'immagine docker di MXNet -

$ docker pull mxnet/python

Ora per vedere se il pull dell'immagine docker mxnet / python ha avuto successo, possiamo elencare le immagini docker come segue:

$ docker images

Per le velocità di inferenza più elevate con MXNet, si consiglia di utilizzare l'ultima MXNet con Intel MKL-DNN.

Controlla i comandi sottostanti -

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

Installazione di MXNet su cloud e dispositivi

Questa sezione evidenzia come installare Apache MXNet su Cloud e sui dispositivi. Cominciamo imparando come installare MXNet su cloud.

Installazione di MXNet On Cloud

Puoi anche ottenere Apache MXNet su diversi provider cloud con Graphical Processing Unit (GPU)supporto. Altri due tipi di supporto che puoi trovare sono i seguenti:

  • Supporto ibrido GPU / CPU per casi d'uso come inferenza scalabile.
  • Supporto GPU fattoriale con AWS Elastic Inference.

Di seguito sono riportati i provider di cloud che forniscono supporto GPU con diverse macchine virtuali per Apache MXNet−

La console Alibaba

Puoi creare il file NVIDIA GPU Cloud Virtual Machine (VM) disponibile a https://docs.nvidia.com/ngc con la console Alibaba e utilizza Apache MXNet.

Amazon Web Services

Fornisce inoltre supporto GPU e fornisce i seguenti servizi per Apache MXNet−

Amazon SageMaker

Gestisce la formazione e la distribuzione dei modelli Apache MXNet.

AMI AWS Deep Learning

Fornisce un ambiente Conda preinstallato per Python 2 e Python 3 con Apache MXNet, CUDA, cuDNN, MKL-DNN e AWS Elastic Inference.

Formazione dinamica su AWS

Fornisce la formazione per la configurazione EC2 manuale sperimentale e per la configurazione semi-automatica di CloudFormation.

Puoi usare NVIDIA VM disponibile a https://aws.amazon.com con i servizi web di Amazon.

Google Cloud Platform

Google fornisce anche NVIDIA GPU cloud image disponibile all'indirizzo https://console.cloud.google.com per lavorare con Apache MXNet.

Microsoft Azure

Fornisce anche Microsoft Azure Marketplace NVIDIA GPU cloud image disponibile a https://azuremarketplace.microsoft.com per lavorare con Apache MXNet.

Oracle Cloud

Oracle fornisce anche NVIDIA GPU cloud image disponibile a https://docs.cloud.oracle.com per lavorare con Apache MXNet.

Unità di elaborazione centrale (CPU)

Apache MXNet funziona su ogni istanza di sola CPU del provider cloud. Ci sono vari metodi per installare come -

  • Istruzioni per l'installazione di Python pip.

  • Istruzioni Docker.

  • Opzione preinstallata come Amazon Web Services che fornisce AWS Deep Learning AMI (con ambiente Conda preinstallato per Python 2 e Python 3 con MXNet e MKL-DNN).

Installazione di MXNet sui dispositivi

Impariamo come installare MXNet sui dispositivi.

Raspberry Pi

Puoi anche eseguire Apache MXNet su dispositivi Raspberry Pi 3B poiché MXNet supporta anche il sistema operativo Respbian ARM. Per eseguire MXNet senza problemi su Raspberry Pi3, si consiglia di avere un dispositivo con più di 1 GB di RAM e una scheda SD con almeno 4 GB di spazio libero.

Di seguito sono riportati i modi con cui è possibile creare MXNet per Raspberry Pi e installare anche i collegamenti Python per la libreria:

Installazione veloce

La ruota Python preconfigurata può essere utilizzata su un Raspberry Pi 3B con Stretch per una rapida installazione. Uno dei problemi importanti con questo metodo è che dobbiamo installare diverse dipendenze per far funzionare Apache MXNet.

Installazione Docker

È possibile seguire le istruzioni di installazione del docker, disponibili all'indirizzo https://docs.docker.com/engine/install/ubuntu/per installare Docker sulla tua macchina. A questo scopo, possiamo installare e utilizzare anche Community Edition (CE).

Build nativa (dall'origine)

Per installare MXNet dalla sorgente, dobbiamo seguire i seguenti due passaggi:

Passo 1

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

Per creare la libreria condivisa sulla versione Raspberry Wheezy e successive, abbiamo bisogno delle seguenti dipendenze:

  • Git- È necessario estrarre il codice da GitHub.

  • Libblas- È richiesto per le operazioni algebriche lineari.

  • Libopencv- È necessario per le operazioni relative alla visione artificiale. Tuttavia, è facoltativo se desideri salvare la RAM e lo spazio su disco.

  • C++ Compiler- È necessario per compilare e costruire il codice sorgente MXNet. Di seguito sono riportati i compilatori supportati che supportano C ++ 11−

    • G ++ (4.8 o versione successiva)

    • Clang(3.9-6)

Usa i seguenti comandi per installare le dipendenze sopra menzionate -

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

Successivamente, dobbiamo clonare il repository del codice sorgente MXNet. Per questo usa il seguente comando git nella tua home directory -

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

cd incubator-mxnet

Ora, con l'aiuto dei seguenti comandi, crea la libreria condivisa:

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)

Una volta eseguiti i comandi di cui sopra, inizierà il processo di compilazione che richiederà un paio d'ore per terminare. Otterrai un file denominatolibmxnet.so nella directory build.

Passo 2

Install the supported language-specific packages for Apache MXNet

In questo passaggio, installeremo i collegamenti MXNet Pythin. Per fare ciò, dobbiamo eseguire il seguente comando nella directory MXNet -

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

In alternativa, con il seguente comando, puoi anche creare un file whl package installabile con pip-

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

Dispositivi NVIDIA Jetson

Puoi anche eseguire Apache MXNet su dispositivi NVIDIA Jetson, come TX2 o Nanopoiché MXNet supporta anche il sistema operativo basato su Ubuntu Arch64. Per eseguire MXNet senza problemi sui dispositivi NVIDIA Jetson, è necessario che CUDA sia installato sul dispositivo Jetson.

Di seguito sono riportati i modi con cui è possibile creare MXNet per dispositivi NVIDIA Jetson:

  • Utilizzando una ruota pip Jetson MXNet per lo sviluppo di Python

  • Dalla fonte

Ma, prima di costruire MXNet da uno dei modi sopra menzionati, è necessario installare le seguenti dipendenze sui dispositivi Jetson:

Dipendenze Python

Per poter utilizzare l'API Python, abbiamo bisogno delle seguenti dipendenze:

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

Clona il repository del codice sorgente MXNet

Usando il seguente comando git nella tua home directory, clona il repository di codice sorgente MXNet-

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

Imposta le variabili d'ambiente

Aggiungi quanto segue nel tuo file .profile file nella tua directory home -

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

Ora, applica la modifica immediatamente con il seguente comando -

source .profile

Configura CUDA

Prima di configurare CUDA, con nvcc, è necessario verificare quale versione di CUDA è in esecuzione

nvcc --version

Supponiamo, se più di una versione di CUDA è installata sul tuo dispositivo o computer e desideri cambiare versione di CUDA, usa quanto segue e sostituisci il collegamento simbolico alla versione che desideri -

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

Il comando precedente passerà a CUDA 10.0, che è preinstallato sul dispositivo NVIDIA Jetson Nano.

Una volta terminati i prerequisiti sopra menzionati, ora puoi installare MXNet su dispositivi NVIDIA Jetson. Quindi, facci capire i modi con cui puoi installare MXNet-

By using a Jetson MXNet pip wheel for Python development- Se vuoi usare una ruota Python preparata, scarica quanto segue sul tuo Jetson ed eseguilo

Build nativa (dall'origine)

Per installare MXNet dalla sorgente, dobbiamo seguire i seguenti due passaggi:

Passo 1

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

Per creare la libreria condivisa dal codice sorgente Apache MXNet C ++, puoi utilizzare il metodo Docker o farlo manualmente

Metodo Docker

In questo metodo, devi prima installare Docker ed essere in grado di eseguirlo senza sudo (che è anche spiegato nei passaggi precedenti). Una volta fatto, eseguire quanto segue per eseguire la compilazione incrociata tramite Docker-

$MXNET_HOME/ci/build.py -p jetson

Manuale

In questo metodo, è necessario modificare il file Makefile (con il comando sotto) per installare MXNet con collegamenti CUDA per sfruttare le unità di elaborazione grafica (GPU) sui dispositivi NVIDIA Jetson:

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

Dopo aver modificato il Makefile, è necessario modificare il file config.mk per apportare alcune modifiche aggiuntive per il dispositivo NVIDIA Jetson.

Per questo, aggiorna le seguenti impostazioni -

  • Aggiorna il percorso CUDA: USE_CUDA_PATH = / usr / local / cuda

  • Aggiungi -gencode arch = compute-63, code = sm_62 all'impostazione CUDA_ARCH.

  • Aggiorna le impostazioni NVCC: NVCCFLAGS: = -m64

  • Attiva OpenCV: USE_OPENCV = 1

Ora per assicurarci che MXNet venga compilato con l'accelerazione di bassa precisione a livello hardware di Pascal, dobbiamo modificare il Makefile di Mshadow come segue:

MSHADOW_CFLAGS += -DMSHADOW_USE_PASCAL=1

Infine, con l'aiuto del seguente comando puoi costruire la libreria Apache MXNet completa-

cd $MXNET_HOME make -j $(nproc)

Una volta eseguiti i comandi di cui sopra, inizierà il processo di compilazione che richiederà un paio d'ore per terminare. Otterrai un file denominatolibmxnet.so nel mxnet/lib directory.

Passo 2

Install the Apache MXNet Python Bindings

In questo passaggio, installeremo i collegamenti MXNet Python. Per fare ciò dobbiamo eseguire il seguente comando nella directory MXNet -

cd $MXNET_HOME/python
sudo pip install -e .

Una volta completati i passaggi precedenti, ora sei pronto per eseguire MXNet sui tuoi dispositivi NVIDIA Jetson TX2 o Nano. Può essere verificato con il seguente comando -

import mxnet
mxnet.__version__

Restituirà il numero di versione se tutto funziona correttamente.