Apache MXNet - Instalando MXNet

Para começar a usar o MXNet, a primeira coisa que precisamos fazer é instalá-lo em nosso computador. O Apache MXNet funciona em praticamente todas as plataformas disponíveis, incluindo Windows, Mac e Linux.

Linux OS

Podemos instalar o MXNet no sistema operacional Linux das seguintes maneiras -

Unidade de processamento gráfico (GPU)

Aqui, usaremos vários métodos, nomeadamente Pip, Docker e Source para instalar MXNet quando estivermos usando GPU para processamento -

Usando o método Pip

Você pode usar o seguinte comando para instalar o MXNet em seu sistema operacional Linus -

pip install mxnet

O Apache MXNet também oferece pacotes MKL pip, que são muito mais rápidos quando executados em hardware Intel. Aqui por exemplomxnet-cu101mkl significa que -

  • O pacote é construído com CUDA / cuDNN

  • O pacote está habilitado para MKL-DNN

  • A versão CUDA é 10.1

Para outra opção, você também pode consultar https://pypi.org/project/mxnet/.

Usando Docker

Você pode encontrar as imagens do docker com MXNet em DockerHub, que está disponível em https://hub.docker.com/u/mxnet Vamos verificar as etapas abaixo para instalar o MXNet usando Docker com GPU -

Step 1- Primeiro, seguindo as instruções de instalação do docker que estão disponíveis em https://docs.docker.com/engine/install/ubuntu/. Precisamos instalar o Docker em nossa máquina.

Step 2- Para habilitar o uso de GPUs dos contêineres do docker, em seguida, precisamos instalar o nvidia-docker-plugin. Você pode seguir as instruções de instalação fornecidas emhttps://github.com/NVIDIA/nvidia-docker/wiki.

Step 3- Usando o comando a seguir, você pode puxar a imagem do docker MXNet -

$ sudo docker pull mxnet/python:gpu

Agora, para ver se a extração da imagem docker mxnet / python foi bem-sucedida, podemos listar as imagens docker da seguinte maneira -

$ sudo docker images

Para obter as velocidades de inferência mais rápidas com MXNet, é recomendável usar o MXNet mais recente com Intel MKL-DNN. Verifique os comandos abaixo -

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

Da fonte

Para construir a biblioteca compartilhada MXNet da fonte com GPU, primeiro precisamos configurar o ambiente para CUDA e cuDNN da seguinte maneira -

  • Baixe e instale o kit de ferramentas CUDA, aqui CUDA 9.2 é recomendado.

  • Próximo download cuDNN 7.1.4.

  • Agora precisamos descompactar o arquivo. Também é necessário mudar para o diretório raiz cuDNN. Mova também o cabeçalho e as bibliotecas para a pasta CUDA Toolkit local da seguinte forma -

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

Depois de configurar o ambiente para CUDA e cuDNN, siga as etapas abaixo para construir a biblioteca compartilhada MXNet a partir da fonte -

Step 1- Primeiro, precisamos instalar os pacotes de pré-requisitos. Essas dependências são necessárias no Ubuntu versão 16.04 ou posterior.

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

Step 2- Nesta etapa, faremos o download do código-fonte MXNet e a configuração. Primeiro, vamos clonar o repositório usando o seguinte 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- Usando os seguintes comandos, você pode construir a biblioteca compartilhada central MXNet -

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

Two important points regarding the above step is as follows−

Se você deseja construir a versão de depuração, especifique o seguinte -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Para definir o número de trabalhos de compilação paralela, especifique o seguinte -

cmake --build . --parallel N

Depois de construir com sucesso a biblioteca compartilhada central MXNet, no build pasta em seu MXNet project root, você encontrará libmxnet.so que é necessário para instalar ligações de idioma (opcional).

Unidade de processamento central (CPU)

Aqui, usaremos vários métodos, nomeadamente Pip, Docker e Source para instalar o MXNet quando estivermos usando a CPU para o processamento -

Usando o método Pip

Você pode usar o seguinte comando para instalar o MXNet em seu Linus OS-

pip install mxnet

O Apache MXNet também oferece pacotes pip habilitados para MKL-DNN que são muito mais rápidos quando executados em hardware Intel.

pip install mxnet-mkl

Usando Docker

Você pode encontrar as imagens do docker com MXNet em DockerHub, que está disponível em https://hub.docker.com/u/mxnet. Vamos verificar as etapas abaixo para instalar o MXNet usando Docker com CPU -

Step 1- Primeiro, seguindo as instruções de instalação do docker que estão disponíveis em https://docs.docker.com/engine/install/ubuntu/. Precisamos instalar o Docker em nossa máquina.

Step 2- Usando o seguinte comando, você pode extrair a imagem do docker MXNet:

$ sudo docker pull mxnet/python

Agora, para ver se a extração da imagem docker mxnet / python foi bem-sucedida, podemos listar as imagens docker da seguinte maneira -

$ sudo docker images

Para obter as velocidades de inferência mais rápidas com MXNet, é recomendável usar o MXNet mais recente com Intel MKL-DNN.

Verifique os comandos abaixo -

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

Da fonte

Para construir a biblioteca compartilhada MXNet da fonte com CPU, siga as etapas abaixo -

Step 1- Primeiro, precisamos instalar os pacotes de pré-requisitos. Essas dependências são necessárias no Ubuntu versão 16.04 ou posterior.

sudo apt-get update

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

Step 2- Nesta etapa, faremos o download da fonte MXNet e a configuração. Primeiro, vamos clonar o repositório usando o seguinte comando:

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

cd mxnet
cp config/linux.cmake config.cmake

Step 3- Usando os seguintes comandos, você pode construir a biblioteca compartilhada central MXNet:

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

Two important points regarding the above step is as follows−

Se você deseja construir a versão de depuração, especifique o seguinte:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Para definir o número de trabalhos de compilação paralela, especifique o seguinte−

cmake --build . --parallel N

Depois de construir com sucesso a biblioteca compartilhada central MXNet, no build pasta na raiz do projeto MXNet, você encontrará libmxnet.so, que é necessário para instalar ligações de idioma (opcional).

Mac OS

Podemos instalar MXNet no MacOS das seguintes maneiras–

Unidade de processamento gráfico (GPU)

Se você planeja construir MXNet no MacOS com GPU, então NÃO há método Pip e Docker disponível. O único método neste caso é construí-lo a partir da fonte.

Da fonte

Para construir a biblioteca compartilhada MXNet da fonte com GPU, primeiro precisamos configurar o ambiente para CUDA e cuDNN. Você precisa seguir oNVIDIA CUDA Installation Guide que está disponível em https://docs.nvidia.com e cuDNN Installation Guide, que está disponível em https://docs.nvidia.com/deeplearning para mac OS.

Observe que em 2019 o CUDA parou de oferecer suporte ao macOS. Na verdade, as versões futuras do CUDA também podem não oferecer suporte ao macOS.

Depois de configurar o ambiente para CUDA e cuDNN, siga as etapas abaixo para instalar o MXNet da fonte no OS X (Mac) -

Step 1- Como precisamos de algumas dependências no OS x, primeiro, precisamos instalar os pacotes de pré-requisitos.

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

Também podemos construir MXNet sem OpenCV, pois opencv é uma dependência opcional.

Step 2- Nesta etapa, faremos o download da fonte MXNet e a configuração. Primeiro, vamos clonar o repositório usando o seguinte comando−

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

cd mxnet
cp config/linux.cmake config.cmake

Para um habilitado para GPU, é necessário instalar as dependências CUDA primeiro porque quando se tenta construir uma compilação habilitada para GPU em uma máquina sem GPU, a compilação MXNet não pode detectar automaticamente sua arquitetura de GPU. Nesses casos, o MXNet terá como alvo todas as arquiteturas de GPU disponíveis.

Step 3- Usando os seguintes comandos, você pode construir a biblioteca compartilhada central MXNet -

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

Dois pontos importantes em relação à etapa acima são os seguintes -

Se você deseja construir a versão de depuração, especifique o seguinte -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Para definir o número de trabalhos de compilação paralela, especifique o seguinte:

cmake --build . --parallel N

Depois de construir com sucesso a biblioteca compartilhada central MXNet, no build pasta em seu MXNet project root, você encontrará libmxnet.dylib, que é necessário para instalar ligações de idioma (opcional).

Unidade de processamento central (CPU)

Aqui, usaremos vários métodos, nomeadamente Pip, Docker e Source para instalar MXNet quando estivermos usando CPU para processamento -

Usando o método Pip

Você pode usar o seguinte comando para instalar o MXNet em seu sistema operacional Linus

pip install mxnet

Usando Docker

Você pode encontrar as imagens do docker com MXNet em DockerHub, que está disponível em https://hub.docker.com/u/mxnet. Vamos verificar as etapas abaixo para instalar o MXNet usando Docker com CPU−

Step 1- Primeiro, seguindo o docker installation instructions que estão disponíveis em https://docs.docker.com/docker-for-mac precisamos instalar o Docker em nossa máquina.

Step 2- Usando o seguinte comando, você pode puxar a imagem docker MXNet -

$ docker pull mxnet/python

Agora, a fim de ver se o pull da imagem docker mxnet / python foi bem-sucedido, podemos listar as imagens docker da seguinte maneira−

$ docker images

Para obter as velocidades de inferência mais rápidas com MXNet, é recomendável usar o MXNet mais recente com Intel MKL-DNN. Verifique os comandos abaixo -

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

Da fonte

Siga as etapas abaixo para instalar o MXNet da fonte no OS X (Mac) -

Step 1- Como precisamos de algumas dependências no OS x, primeiro, precisamos instalar os pacotes de pré-requisitos.

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

Também podemos construir MXNet sem OpenCV, pois opencv é uma dependência opcional.

Step 2- Nesta etapa, faremos o download da fonte MXNet e a configuração. Primeiro, vamos clonar o repositório usando o seguinte comando−

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

cd mxnet

cp config/linux.cmake config.cmake

Step 3- Usando os seguintes comandos, você pode construir a biblioteca compartilhada central MXNet:

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

Two important points regarding the above step is as follows−

Se você deseja construir a versão de depuração, especifique o seguinte -

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Para definir o número de trabalhos de compilação paralela, especifique o seguinte−

cmake --build . --parallel N

Depois de construir com sucesso a biblioteca compartilhada central MXNet, no build pasta em seu MXNet project root, você encontrará libmxnet.dylib, que é necessário para instalar ligações de idioma (opcional).

SO Windows

Para instalar MXNet no Windows, a seguir estão os pré-requisitos–

Requisitos Mínimos do Sistema

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

  • Visual Studio 2015 ou 2017 (qualquer tipo)

  • Python 2.7 ou 3.6

  • pip

Requisitos de sistema recomendados

  • Windows 10, Server 2012 R2 ou Server 2016

  • Visual Studio 2017

  • Pelo menos uma GPU habilitada para NVIDIA CUDA

  • CPU habilitada para MKL: processador Intel® Xeon®, família de processadores Intel® Core ™, processador Intel Atom® ou processador Intel® Xeon Phi ™

  • Python 2.7 ou 3.6

  • pip

Unidade de processamento gráfico (GPU)

Usando o método Pip−

Se você planeja construir MXNet no Windows com GPUs NVIDIA, há duas opções para instalar MXNet com suporte CUDA com um pacote Python -

Instalar com suporte CUDA

Abaixo estão as etapas com a ajuda das quais podemos configurar o MXNet com CUDA.

Step 1- Instale primeiro o Microsoft Visual Studio 2017 ou o Microsoft Visual Studio 2015.

Step 2- Em seguida, baixe e instale o NVIDIA CUDA. É recomendado usar o CUDA versões 9.2 ou 9.0 porque alguns problemas com o CUDA 9.1 foram identificados no passado.

Step 3- Agora, baixe e instale NVIDIA_CUDA_DNN.

Step 4- Finalmente, usando o seguinte comando pip, instale MXNet com CUDA−

pip install mxnet-cu92

Instale com suporte CUDA e MKL

Abaixo estão os passos com a ajuda dos quais podemos configurar o MXNet com CUDA e MKL.

Step 1- Instale primeiro o Microsoft Visual Studio 2017 ou o Microsoft Visual Studio 2015.

Step 2- Em seguida, baixe e instale intel MKL

Step 3- Agora, baixe e instale o NVIDIA CUDA.

Step 4- Agora, baixe e instale NVIDIA_CUDA_DNN.

Step 5- Finalmente, usando o seguinte comando pip, instale o MXNet com MKL.

pip install mxnet-cu92mkl

Da fonte

Para construir a biblioteca principal MXNet a partir da fonte com GPU, temos as duas opções a seguir -

Option 1− Build with Microsoft Visual Studio 2017

Para construir e instalar o MXNet sozinho usando o Microsoft Visual Studio 2017, você precisa das seguintes dependências.

Install/update Microsoft Visual Studio.

  • Se o Microsoft Visual Studio ainda não estiver instalado em sua máquina, primeiro baixe e instale-o.

  • Ele solicitará a instalação do Git. Instale também.

  • Se o Microsoft Visual Studio já estiver instalado em sua máquina, mas você quiser atualizá-lo, prossiga para a próxima etapa para modificar sua instalação. Aqui, você também terá a oportunidade de atualizar o Microsoft Visual Studio.

Siga as instruções para abrir o instalador do Visual Studio disponíveis em https://docs.microsoft.com/en-us para modificar componentes individuais.

No aplicativo Visual Studio Installer, atualize conforme necessário. Depois disso, procure e verifiqueVC++ 2017 version 15.4 v14.11 toolset e clique Modify.

Agora, usando o seguinte comando, altere a versão do Microsoft VS2017 para v14.11−

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

Em seguida, você precisa baixar e instalar CMake disponível em https://cmake.org/download/ Recomenda-se usar CMake v3.12.2 que está disponível em https://cmake.org/download/ porque é testado com MXNet.

Agora, baixe e execute o OpenCV pacote disponível em https://sourceforge.net/projects/opencvlibrary/que descompactará vários arquivos. Depende de você se deseja colocá-los em outro diretório ou não. Aqui, vamos usar o caminhoC:\utils(mkdir C:\utils) como nosso caminho padrão.

Em seguida, precisamos definir a variável de ambiente OpenCV_DIR para apontar para o diretório de construção OpenCV que acabamos de descompactar. Para este prompt de comando aberto e digiteset OpenCV_DIR=C:\utils\opencv\build.

Um ponto importante é que, se você não tiver o Intel MKL (Math Kernel Library) instalado, poderá instalá-lo.

Outro pacote de código aberto que você pode usar é OpenBLAS. Aqui, para as instruções adicionais, presumimos que você esteja usandoOpenBLAS.

Então, baixe o OpenBlas pacote que está disponível em https://sourceforge.net e descompacte o arquivo, renomeie-o para OpenBLAS e colocá-lo sob C:\utils.

Em seguida, precisamos definir a variável de ambiente OpenBLAS_HOME para apontar para o diretório OpenBLAS que contém o include e libdiretórios. Para este prompt de comando aberto e digiteset OpenBLAS_HOME=C:\utils\OpenBLAS.

Agora, baixe e instale o CUDA disponível em https://developer.nvidia.com. Observe que, se você já tinha o CUDA e instalou o Microsoft VS2017, é necessário reinstalar o CUDA agora, para que possa obter os componentes do kit de ferramentas CUDA para integração com o Microsoft VS2017.

Em seguida, você precisa baixar e instalar cuDNN.

Em seguida, você precisa baixar e instalar o git que está em https://gitforwindows.org/ Além disso.

Depois de instalar todas as dependências necessárias, siga as etapas fornecidas abaixo para construir o código-fonte MXNet

Step 1- Abra o prompt de comando no Windows.

Step 2- Agora, usando o seguinte comando, baixe o código-fonte MXNet do GitHub:

cd C:\

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

Step 3- Em seguida, verifique o seguinte−

DCUDNN_INCLUDE and DCUDNN_LIBRARY variáveis ​​de ambiente estão apontando para o include pasta e cudnn.lib arquivo do local de instalação do CUDA

C:\incubator-mxnet é a localização do código-fonte que você acabou de clonar na etapa anterior.

Step 4- Em seguida, usando o seguinte comando, crie um build directory e também vá para o diretório, por exemplo−

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

Step 5- Agora, usando cmake, compile o código-fonte MXNet da seguinte maneira−

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- Depois que o CMake for concluído com sucesso, use o seguinte comando para compilar o código-fonte MXNet -

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

Option 2: Build with Microsoft Visual Studio 2015

Para criar e instalar o MXNet sozinho usando o Microsoft Visual Studio 2015, você precisa das seguintes dependências.

Instale / atualize o Microsoft Visual Studio 2015. O requisito mínimo para construir MXnet a partir da fonte é a atualização 3 do Microsoft Visual Studio 2015. Você pode usar Tools -> Extensions and Updates... | Product Updates menu para atualizá-lo.

Em seguida, você precisa baixar e instalar CMake que está disponível em https://cmake.org/download/. Recomenda-se usarCMake v3.12.2 que está em https://cmake.org/download/, porque é testado com MXNet.

Agora, baixe e execute o pacote OpenCV disponível em https://excellmedia.dl.sourceforge.netque descompactará vários arquivos. Depende de você, se deseja colocá-los em outro diretório ou não.

Em seguida, precisamos definir a variável de ambiente OpenCV_DIR apontar para o OpenCVdiretório de compilação que acabamos de descompactar. Para isso, abra o prompt de comando e digite setOpenCV_DIR=C:\opencv\build\x64\vc14\bin.

Um ponto importante é que, se você não tiver o Intel MKL (Math Kernel Library) instalado, poderá instalá-lo.

Outro pacote de código aberto que você pode usar é OpenBLAS. Aqui, para as instruções adicionais, presumimos que você esteja usandoOpenBLAS.

Então, baixe o OpenBLAS pacote disponível em https://excellmedia.dl.sourceforge.net e descompacte o arquivo, renomeie-o para OpenBLAS e coloque-o em C: \ utils.

Em seguida, precisamos definir a variável de ambiente OpenBLAS_HOME para apontar para o diretório OpenBLAS que contém os diretórios include e lib. Você pode encontrar o diretório emC:\Program files (x86)\OpenBLAS\

Observe que, se você já tinha o CUDA e instalou o Microsoft VS2015, será necessário reinstalar o CUDA agora para obter os componentes do kit de ferramentas CUDA para integração com o Microsoft VS2017.

Em seguida, você precisa baixar e instalar cuDNN.

Agora, precisamos definir a variável de ambiente CUDACXX para apontar para o CUDA Compiler(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe por exemplo).

Da mesma forma, também precisamos definir a variável de ambiente CUDNN_ROOT apontar para o cuDNN diretório que contém o include, lib e bin diretórios (C:\Downloads\cudnn-9.1-windows7-x64-v7\cuda por exemplo).

Depois de instalar todas as dependências necessárias, siga as etapas fornecidas abaixo para construir o código-fonte MXNet

Step 1- Primeiro, baixe o código-fonte MXNet do GitHub−

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

Step 2- Em seguida, use o CMake para criar um Visual Studio em ./build.

Step 3- Agora, no Visual Studio, precisamos abrir o arquivo de solução,.slne compilá-lo. Esses comandos irão produzir uma biblioteca chamadamxnet.dll no ./build/Release/ or ./build/Debug pasta

Step 4- Depois que o CMake for concluído com sucesso, use o seguinte comando para compilar o código-fonte MXNet

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

Unidade de processamento central (CPU)

Aqui, usaremos vários métodos, nomeadamente Pip, Docker e Source para instalar MXNet quando estivermos usando CPU para processamento -

Usando o método Pip

Se você planeja construir MXNet no Windows com CPUs, há duas opções para instalar MXNet usando um pacote Python -

Install with CPUs

Use o seguinte comando para instalar MXNet com CPU com Python−

pip install mxnet

Install with Intel CPUs

Conforme discutido acima, MXNet tem suporte experimental para Intel MKL, bem como MKL-DNN. Use o seguinte comando para instalar MXNet com CPU Intel com Python−

pip install mxnet-mkl

Usando Docker

Você pode encontrar as imagens do docker com MXNet em DockerHub, disponível em https://hub.docker.com/u/mxnet Vamos verificar as etapas abaixo, para instalar o MXNet usando Docker com CPU−

Step 1- Primeiro, seguindo as instruções de instalação do docker, que podem ser lidas em https://docs.docker.com/docker-for-mac/install. Precisamos instalar o Docker em nossa máquina.

Step 2- Usando o seguinte comando, você pode puxar a imagem docker MXNet -

$ docker pull mxnet/python

Agora, a fim de ver se o pull da imagem docker mxnet / python foi bem-sucedido, podemos listar as imagens docker da seguinte maneira−

$ docker images

Para obter as velocidades de inferência mais rápidas com MXNet, é recomendável usar o MXNet mais recente com Intel MKL-DNN.

Verifique os comandos abaixo -

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

Instalando MXNet na nuvem e dispositivos

Esta seção destaca como instalar o Apache MXNet na nuvem e em dispositivos. Vamos começar aprendendo sobre a instalação do MXNet na nuvem.

Instalando MXNet On Cloud

Você também pode obter o Apache MXNet em vários provedores de nuvem com Graphical Processing Unit (GPU)Apoio, suporte. Dois outros tipos de suporte que você pode encontrar são os seguintes-

  • Suporte híbrido de GPU / CPU para casos de uso como inferência escalonável.
  • Suporte de GPU fatorial com AWS Elastic Inference.

A seguir estão os provedores de nuvem que fornecem suporte de GPU com diferentes máquinas virtuais para Apache MXNet−

O console Alibaba

Você pode criar o NVIDIA GPU Cloud Virtual Machine (VM) disponível em https://docs.nvidia.com/ngc com o console Alibaba e use o Apache MXNet.

Amazon Web Services

Ele também fornece suporte de GPU e oferece os seguintes serviços para Apache MXNet−

Amazon SageMaker

Ele gerencia o treinamento e a implantação de modelos Apache MXNet.

AWS Deep Learning AMI

Ele fornece ambiente Conda pré-instalado para Python 2 e Python 3 com Apache MXNet, CUDA, cuDNN, MKL-DNN e AWS Elastic Inference.

Treinamento Dinâmico na AWS

Ele fornece o treinamento para a configuração manual experimental do EC2, bem como para a configuração semi-automatizada do CloudFormation.

Você pode usar NVIDIA VM disponível em https://aws.amazon.com com os serviços da Web da Amazon.

Google Cloud Platform

O Google também está fornecendo NVIDIA GPU cloud image que está disponível em https://console.cloud.google.com para trabalhar com Apache MXNet.

Microsoft Azure

O Microsoft Azure Marketplace também oferece NVIDIA GPU cloud image disponível em https://azuremarketplace.microsoft.com para trabalhar com Apache MXNet.

Oracle Cloud

A Oracle também está fornecendo NVIDIA GPU cloud image disponível em https://docs.cloud.oracle.com para trabalhar com Apache MXNet.

Unidade de processamento central (CPU)

O Apache MXNet funciona em todas as instâncias apenas de CPU do provedor de nuvem. Existem vários métodos de instalação, como -

  • Instruções de instalação do pip Python.

  • Instruções do Docker.

  • Opção pré-instalada como Amazon Web Services, que fornece AWS Deep Learning AMI (com ambiente Conda pré-instalado para Python 2 e Python 3 com MXNet e MKL-DNN).

Instalando MXNet em Dispositivos

Vamos aprender como instalar MXNet em dispositivos.

Raspberry Pi

Você também pode executar o Apache MXNet em dispositivos Raspberry Pi 3B, pois o MXNet também oferece suporte ao sistema operacional baseado em ARM da Respbian. Para executar o MXNet sem problemas no Raspberry Pi3, é recomendável ter um dispositivo com mais de 1 GB de RAM e um cartão SD com pelo menos 4 GB de espaço livre.

A seguir estão as maneiras com a qual você pode construir MXNet para o Raspberry Pi e instalar os vínculos Python para a biblioteca também -

Instalação rápida

A roda Python pré-construída pode ser usada em um Raspberry Pi 3B com Stretch para instalação rápida. Um dos problemas importantes com esse método é que precisamos instalar várias dependências para fazer o Apache MXNet funcionar.

Instalação do Docker

Você pode seguir as instruções de instalação do docker, que estão disponíveis em https://docs.docker.com/engine/install/ubuntu/para instalar o Docker em sua máquina. Para este propósito, podemos instalar e usar o Community Edition (CE) também.

Compilação nativa (da fonte)

Para instalar o MXNet a partir da fonte, precisamos seguir as duas etapas a seguir -

Passo 1

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

Para construir a biblioteca compartilhada na versão Raspberry Wheezy e posterior, precisamos das seguintes dependências:

  • Git- É necessário extrair o código do GitHub.

  • Libblas- É necessário para operações algébricas lineares.

  • Libopencv- É necessário para operações relacionadas à visão computacional. No entanto, é opcional se você quiser economizar sua RAM e espaço em disco.

  • C++ Compiler- É necessário para compilar e construir o código-fonte do MXNet. A seguir estão os compiladores suportados que suportam C ++ 11−

    • G ++ (4.8 ou versão posterior)

    • Clang(3.9-6)

Use os seguintes comandos para instalar as dependências mencionadas acima−

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

Em seguida, precisamos clonar o repositório de código-fonte MXNet. Para isso, use o seguinte comando git em seu diretório home−

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

cd incubator-mxnet

Agora, com a ajuda dos seguintes comandos, construa a biblioteca compartilhada:

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)

Depois de executar os comandos acima, o processo de construção será iniciado, o que levará algumas horas para ser concluído. Você receberá um arquivo chamadolibmxnet.so no diretório de construção.

Passo 2

Install the supported language-specific packages for Apache MXNet

Nesta etapa, iremos instalar ligações MXNet Pythin. Para fazer isso, precisamos executar o seguinte comando no diretório MXNet -

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

Como alternativa, com o seguinte comando, você também pode criar um whl package instalável com pip-

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

Dispositivos NVIDIA Jetson

Você também pode executar o Apache MXNet em dispositivos NVIDIA Jetson, como TX2 ou Nanocomo MXNet também suporta o sistema operacional baseado em Ubuntu Arch64. Para executar o MXNet sem problemas nos dispositivos NVIDIA Jetson, é necessário ter CUDA instalado em seu dispositivo Jetson.

A seguir estão as maneiras com as quais você pode construir MXNet para dispositivos NVIDIA Jetson:

  • Usando uma roda de pip Jetson MXNet para desenvolvimento Python

  • Da fonte

Mas, antes de construir MXNet de qualquer uma das formas mencionadas acima, você precisa instalar as seguintes dependências em seus dispositivos Jetson-

Dependências Python

Para usar a API Python, precisamos das seguintes dependências−

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

Clone o repositório de código-fonte MXNet

Usando o seguinte comando git em seu diretório inicial, clone o repositório de código-fonte MXNet -

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

Variáveis ​​de ambiente de configuração

Adicione o seguinte em seu .profile arquivo em seu diretório home−

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

Agora, aplique a mudança imediatamente com o seguinte comando−

source .profile

Configurar CUDA

Antes de configurar o CUDA, com nvcc, você precisa verificar qual versão do CUDA está sendo executado -

nvcc --version

Suponha que, se mais de uma versão CUDA estiver instalada em seu dispositivo ou computador e você quiser trocar as versões CUDA, use o seguinte e substitua o link simbólico para a versão que você deseja -

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

O comando acima mudará para CUDA 10.0, que é pré-instalado no dispositivo NVIDIA Jetson Nano.

Depois de concluir os pré-requisitos mencionados acima, agora você pode instalar o MXNet nos dispositivos NVIDIA Jetson. Então, vamos entender as maneiras com as quais você pode instalar MXNet−

By using a Jetson MXNet pip wheel for Python development- Se você quiser usar uma roda Python preparada, faça o download do seguinte em seu Jetson e execute-o−

Compilação nativa (da fonte)

Para instalar o MXNet a partir da fonte, precisamos seguir as duas etapas a seguir -

Passo 1

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

Para construir a biblioteca compartilhada a partir do código-fonte Apache MXNet C ++, você pode usar o método Docker ou fazê-lo manualmente

Método Docker

Neste método, você primeiro precisa instalar o Docker e poder executá-lo sem sudo (o que também é explicado nas etapas anteriores). Uma vez feito isso, execute o seguinte para executar a compilação cruzada via Docker−

$MXNET_HOME/ci/build.py -p jetson

Manual

Neste método, você precisa editar o Makefile (com o comando abaixo) para instalar o MXNet com ligações CUDA para aproveitar as unidades de processamento gráfico (GPU) em dispositivos NVIDIA Jetson:

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

Depois de editar o Makefile, você precisa editar o arquivo config.mk para fazer algumas alterações adicionais no dispositivo NVIDIA Jetson.

Para isso, atualize as seguintes configurações–

  • Atualize o caminho CUDA: USE_CUDA_PATH = / usr / local / cuda

  • Adicione -gencode arch = compute-63, code = sm_62 à configuração CUDA_ARCH.

  • Atualize as configurações de NVCC: NVCCFLAGS: = -m64

  • Ligue o OpenCV: USE_OPENCV = 1

Agora, para garantir que o MXNet construa com aceleração de baixa precisão de nível de hardware de Pascal, precisamos editar o Makefile Mshadow como segue−

MSHADOW_CFLAGS += -DMSHADOW_USE_PASCAL=1

Finalmente, com a ajuda do seguinte comando, você pode construir a biblioteca Apache MXNet completa -

cd $MXNET_HOME
make -j $(nproc)

Depois de executar os comandos acima, o processo de construção será iniciado, o que levará algumas horas para ser concluído. Você receberá um arquivo chamadolibmxnet.so no mxnet/lib directory.

Passo 2

Install the Apache MXNet Python Bindings

Nesta etapa, instalaremos as ligações MXNet Python. Para fazer isso, precisamos executar o seguinte comando no diretório MXNet -

cd $MXNET_HOME/python
sudo pip install -e .

Depois de concluir as etapas acima, você agora está pronto para executar o MXNet em seus dispositivos NVIDIA Jetson TX2 ou Nano. Pode ser verificado com o seguinte comando−

import mxnet
mxnet.__version__

Ele retornará o número da versão se tudo estiver funcionando corretamente.