Apache MXNet: instalación de MXNet
Para comenzar con MXNet, lo primero que debemos hacer es instalarlo en nuestra computadora. Apache MXNet funciona en prácticamente todas las plataformas disponibles, incluidas Windows, Mac y Linux.
SO Linux
Podemos instalar MXNet en el sistema operativo Linux de las siguientes formas:
Unidad de procesamiento gráfico (GPU)
Aquí, usaremos varios métodos, a saber, Pip, Docker y Source para instalar MXNet cuando estemos usando GPU para procesar:
Utilizando el método Pip
Puede usar el siguiente comando para instalar MXNet en su sistema operativo Linus:
pip install mxnet
Apache MXNet también ofrece paquetes pip MKL, que son mucho más rápidos cuando se ejecutan en hardware Intel. Aquí por ejemplomxnet-cu101mkl significa que -
El paquete está construido con CUDA / cuDNN
El paquete está habilitado para MKL-DNN
La versión CUDA es 10.1
Para otra opción, también puede consultar https://pypi.org/project/mxnet/.
Utilizando Docker
Puede encontrar las imágenes de la ventana acoplable con MXNet en DockerHub, que está disponible en https://hub.docker.com/u/mxnet Veamos los pasos a continuación para instalar MXNet usando Docker con GPU:
Step 1- Primero, siguiendo las instrucciones de instalación de la ventana acoplable que están disponibles en https://docs.docker.com/engine/install/ubuntu/. Necesitamos instalar Docker en nuestra máquina.
Step 2- Para habilitar el uso de GPU desde los contenedores de la ventana acoplable, a continuación, debemos instalar nvidia-docker-plugin. Puede seguir las instrucciones de instalación que se proporcionan enhttps://github.com/NVIDIA/nvidia-docker/wiki.
Step 3- Al usar el siguiente comando, puede extraer la imagen de la ventana acoplable MXNet -
$ sudo docker pull mxnet/python:gpu
Ahora, para ver si la extracción de la imagen de la ventana acoplable de mxnet / python fue exitosa, podemos enumerar las imágenes de la ventana acoplable de la siguiente manera:
$ sudo docker images
Para obtener las velocidades de inferencia más rápidas con MXNet, se recomienda utilizar la última versión de MXNet con Intel MKL-DNN. Compruebe los comandos a continuación:
$ sudo docker pull mxnet/python:1.3.0_cpu_mkl
$ sudo docker images
De la fuente
Para construir la biblioteca compartida MXNet desde la fuente con GPU, primero necesitamos configurar el entorno para CUDA y cuDNN de la siguiente manera:
Descargue e instale el kit de herramientas CUDA, aquí se recomienda CUDA 9.2.
Siguiente descarga cuDNN 7.1.4.
Ahora necesitamos descomprimir el archivo. También es necesario cambiar al directorio raíz de cuDNN. También mueva el encabezado y las bibliotecas a la carpeta local de CUDA Toolkit de la siguiente manera:
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
Después de configurar el entorno para CUDA y cuDNN, siga los pasos a continuación para crear la biblioteca compartida MXNet desde la fuente:
Step 1- Primero, necesitamos instalar los paquetes de requisitos previos. Estas dependencias son necesarias en la versión 16.04 de Ubuntu o posterior.
sudo apt-get update
sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev
libopencv-dev cmake
Step 2- En este paso, descargaremos el código fuente MXNet y lo configuraremos. Primero, clonemos el repositorio usando el siguiente 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- Mediante el uso de los siguientes comandos, puede crear la biblioteca compartida principal de MXNet
rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .
Two important points regarding the above step is as follows−
Si desea compilar la versión de depuración, especifique lo siguiente:
cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..
Para establecer el número de trabajos de compilación en paralelo, especifique lo siguiente:
cmake --build . --parallel N
Una vez que haya creado con éxito la biblioteca compartida principal de MXNet, en el build carpeta en tu MXNet project root, usted encontrará libmxnet.so que es necesario para instalar enlaces de idioma (opcional).
Unidad Central de Procesamiento (CPU)
Aquí, usaremos varios métodos, a saber, Pip, Docker y Source para instalar MXNet cuando estemos usando CPU para procesar:
Utilizando el método Pip
Puede usar el siguiente comando para instalar MXNet en su sistema operativo Linus
pip install mxnet
Apache MXNet también ofrece paquetes pip habilitados para MKL-DNN que son mucho más rápidos cuando se ejecutan en hardware Intel.
pip install mxnet-mkl
Utilizando Docker
Puede encontrar las imágenes de la ventana acoplable con MXNet en DockerHub, que está disponible en https://hub.docker.com/u/mxnet. Veamos los pasos a continuación para instalar MXNet usando Docker con CPU:
Step 1- Primero, siguiendo las instrucciones de instalación de la ventana acoplable que están disponibles en https://docs.docker.com/engine/install/ubuntu/. Necesitamos instalar Docker en nuestra máquina.
Step 2- Al usar el siguiente comando, puede extraer la imagen de la ventana acoplable MXNet:
$ sudo docker pull mxnet/python
Ahora, para ver si la extracción de la imagen de la ventana acoplable de mxnet / python fue exitosa, podemos enumerar las imágenes de la ventana acoplable de la siguiente manera:
$ sudo docker images
Para obtener las velocidades de inferencia más rápidas con MXNet, se recomienda utilizar la última versión de MXNet con Intel MKL-DNN.
Compruebe los comandos a continuación:
$ sudo docker pull mxnet/python:1.3.0_cpu_mkl
$ sudo docker images
De la fuente
Para construir la biblioteca compartida MXNet desde la fuente con la CPU, siga los pasos a continuación:
Step 1- Primero, necesitamos instalar los paquetes de requisitos previos. Estas dependencias son necesarias en la versión 16.04 de Ubuntu o posterior.
sudo apt-get update
sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake
Step 2- En este paso descargaremos el código fuente MXNet y lo configuraremos. Primero, clonemos el repositorio usando el siguiente comando:
git clone –recursive https://github.com/apache/incubator-mxnet.git mxnet
cd mxnet
cp config/linux.cmake config.cmake
Step 3- Mediante el uso de los siguientes comandos, puede crear la biblioteca compartida principal de MXNet:
rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .
Two important points regarding the above step is as follows−
Si desea compilar la versión de depuración, especifique lo siguiente:
cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..
Para establecer el número de trabajos de compilación en paralelo, especifique lo siguiente:
cmake --build . --parallel N
Una vez que haya creado con éxito la biblioteca compartida principal de MXNet, en el build carpeta en la raíz de su proyecto MXNet, encontrará libmxnet.so, que es necesario para instalar enlaces de idioma (opcional).
Mac OS
Podemos instalar MXNet en MacOS de las siguientes formas:
Unidad de procesamiento gráfico (GPU)
Si planea compilar MXNet en MacOS con GPU, NO hay ningún método Pip ni Docker disponible. El único método en este caso es compilarlo desde la fuente.
De la fuente
Para construir la biblioteca compartida MXNet desde la fuente con GPU, primero necesitamos configurar el entorno para CUDA y cuDNN. Tienes que seguir elNVIDIA CUDA Installation Guide que está disponible en https://docs.nvidia.com y cuDNN Installation Guide, que está disponible en https://docs.nvidia.com/deeplearning para mac OS.
Tenga en cuenta que en 2019 CUDA dejó de admitir macOS. De hecho, es posible que las versiones futuras de CUDA tampoco sean compatibles con macOS.
Una vez que haya configurado el entorno para CUDA y cuDNN, siga los pasos que se indican a continuación para instalar MXNet desde la fuente en OS X (Mac):
Step 1- Como necesitamos algunas dependencias en OS x, primero, necesitamos instalar los paquetes de requisitos previos.
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
También podemos construir MXNet sin OpenCV ya que opencv es una dependencia opcional.
Step 2- En este paso descargaremos el código fuente MXNet y lo configuraremos. Primero, clonemos el repositorio usando el siguiente comando:
git clone –-recursive https://github.com/apache/incubator-mxnet.git mxnet
cd mxnet
cp config/linux.cmake config.cmake
Para una GPU habilitada, es necesario instalar primero las dependencias CUDA porque cuando uno intenta construir una compilación habilitada para GPU en una máquina sin GPU, la compilación MXNet no puede detectar automáticamente la arquitectura de su GPU. En tales casos, MXNet apuntará a todas las arquitecturas de GPU disponibles.
Step 3- Mediante el uso de los siguientes comandos, puede crear la biblioteca compartida principal de MXNet
rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .
Dos puntos importantes con respecto al paso anterior son los siguientes:
Si desea compilar la versión de depuración, especifique lo siguiente:
cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..
Para establecer el número de trabajos de compilación en paralelo, especifique lo siguiente:
cmake --build . --parallel N
Una vez que haya creado con éxito la biblioteca compartida principal de MXNet, en el build carpeta en tu MXNet project root, usted encontrará libmxnet.dylib, que es necesario para instalar enlaces de idioma (opcional).
Unidad Central de Procesamiento (CPU)
Aquí, usaremos varios métodos, a saber, Pip, Docker y Source para instalar MXNet cuando estemos usando CPU para procesar
Utilizando el método Pip
Puede usar el siguiente comando para instalar MXNet en su sistema operativo Linus
pip install mxnet
Utilizando Docker
Puede encontrar las imágenes de la ventana acoplable con MXNet en DockerHub, que está disponible en https://hub.docker.com/u/mxnet. Veamos los pasos a continuación para instalar MXNet usando Docker con CPU−
Step 1- Primero, siguiendo el docker installation instructions que están disponibles en https://docs.docker.com/docker-for-mac necesitamos instalar Docker en nuestra máquina.
Step 2- Al usar el siguiente comando, puede extraer la imagen de la ventana acoplable MXNet
$ docker pull mxnet/python
Ahora, para ver si la extracción de la imagen de la ventana acoplable de mxnet / python fue exitosa, podemos enumerar las imágenes de la ventana acoplable de la siguiente manera:
$ docker images
Para obtener las velocidades de inferencia más rápidas con MXNet, se recomienda utilizar la última versión de MXNet con Intel MKL-DNN. Compruebe los comandos a continuación
$ docker pull mxnet/python:1.3.0_cpu_mkl
$ docker images
De la fuente
Siga los pasos que se indican a continuación para instalar MXNet desde la fuente en OS X (Mac):
Step 1- Como necesitamos algunas dependencias en OS x, primero, necesitamos instalar los paquetes de requisitos previos.
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
También podemos construir MXNet sin OpenCV ya que opencv es una dependencia opcional.
Step 2- En este paso descargaremos el código fuente MXNet y lo configuraremos. Primero, clonemos el repositorio usando el siguiente comando:
git clone –-recursive https://github.com/apache/incubator-mxnet.git mxnet
cd mxnet
cp config/linux.cmake config.cmake
Step 3- Mediante el uso de los siguientes comandos, puede crear la biblioteca compartida principal de MXNet:
rm -rf build
mkdir -p build && cd build
cmake -GNinja ..
cmake --build .
Two important points regarding the above step is as follows−
Si desea compilar la versión de depuración, especifique lo siguiente:
cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..
Para establecer el número de trabajos de compilación en paralelo, especifique lo siguiente:
cmake --build . --parallel N
Una vez que haya creado con éxito la biblioteca compartida principal de MXNet, en el build carpeta en tu MXNet project root, usted encontrará libmxnet.dylib, que es necesario para instalar enlaces de idioma (opcional).
SO Windows
Para instalar MXNet en Windows, los siguientes son los requisitos previos:
Requerimientos mínimos del sistema
Windows 7, 10, Server 2012 R2 o Server 2016
Visual Studio 2015 o 2017 (cualquier tipo)
Python 2.7 o 3.6
pip
Requisitos del sistema recomendados
Windows 10, Server 2012 R2 o Server 2016
Visual Studio 2017
Al menos una GPU habilitada para NVIDIA CUDA
CPU habilitada para MKL: procesador Intel® Xeon®, familia de procesadores Intel® Core ™, procesador Intel Atom® o procesador Intel® Xeon Phi ™
Python 2.7 o 3.6
pip
Unidad de procesamiento gráfico (GPU)
Utilizando el método Pip
Si planea construir MXNet en Windows con GPU NVIDIA, hay dos opciones para instalar MXNet con soporte CUDA con un paquete Python:
Instalar con soporte CUDA
A continuación se muestran los pasos con la ayuda de los cuales podemos configurar MXNet con CUDA.
Step 1- Primero instale Microsoft Visual Studio 2017 o Microsoft Visual Studio 2015.
Step 2- A continuación, descargue e instale NVIDIA CUDA. Se recomienda utilizar las versiones 9.2 o 9.0 de CUDA porque en el pasado se han identificado algunos problemas con CUDA 9.1.
Step 3- Ahora, descargue e instale NVIDIA_CUDA_DNN.
Step 4- Finalmente, usando el siguiente comando pip, instale MXNet con CUDA−
pip install mxnet-cu92
Instalar con soporte CUDA y MKL
A continuación se muestran los pasos con la ayuda de los cuales podemos configurar MXNet con CUDA y MKL.
Step 1- Primero instale Microsoft Visual Studio 2017 o Microsoft Visual Studio 2015.
Step 2- A continuación, descargue e instale intel MKL
Step 3- Ahora, descargue e instale NVIDIA CUDA.
Step 4- Ahora, descargue e instale NVIDIA_CUDA_DNN.
Step 5- Finalmente, usando el siguiente comando pip, instale MXNet con MKL.
pip install mxnet-cu92mkl
De la fuente
Para construir la biblioteca central MXNet desde la fuente con GPU, tenemos las siguientes dos opciones:
Option 1− Build with Microsoft Visual Studio 2017
Para construir e instalar MXNet usted mismo usando Microsoft Visual Studio 2017, necesita las siguientes dependencias.
Install/update Microsoft Visual Studio.
Si Microsoft Visual Studio aún no está instalado en su máquina, primero descárguelo e instálelo.
Le preguntará sobre la instalación de Git. Instálelo también.
Si Microsoft Visual Studio ya está instalado en su máquina pero desea actualizarlo, continúe con el siguiente paso para modificar su instalación. Aquí también tendrá la oportunidad de actualizar Microsoft Visual Studio.
Siga las instrucciones para abrir el instalador de Visual Studio disponible en https://docs.microsoft.com/en-us para modificar componentes individuales.
En la aplicación Visual Studio Installer, actualice según sea necesario. Después de eso, busque y compruebeVC++ 2017 version 15.4 v14.11 toolset y haga clic en Modify.
Ahora, usando el siguiente comando, cambie la versión de Microsoft VS2017 a v14.11−
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.11
A continuación, debe descargar e instalar CMake disponible en https://cmake.org/download/ Se recomienda utilizar CMake v3.12.2 que está disponible en https://cmake.org/download/ porque está probado con MXNet.
Ahora, descargue y ejecute el OpenCV paquete disponible en https://sourceforge.net/projects/opencvlibrary/que descomprimirá varios archivos. Depende de usted si desea colocarlos en otro directorio o no. Aquí usaremos el caminoC:\utils(mkdir C:\utils) como nuestra ruta predeterminada.
A continuación, debemos configurar la variable de entorno OpenCV_DIR para que apunte al directorio de compilación de OpenCV que acabamos de descomprimir. Para este símbolo del sistema abierto y escribaset OpenCV_DIR=C:\utils\opencv\build.
Un punto importante es que si no tiene Intel MKL (Math Kernel Library) instalado, puede instalarlo.
Otro paquete de código abierto que puede utilizar es OpenBLAS. Aquí para obtener más instrucciones, asumimos que está utilizandoOpenBLAS.
Entonces, descargue el OpenBlas paquete que está disponible en https://sourceforge.net y descomprima el archivo, cámbiele el nombre a OpenBLAS y ponerlo debajo C:\utils.
A continuación, necesitamos establecer la variable de entorno OpenBLAS_HOME para apuntar al directorio OpenBLAS que contiene el include y libdirectorios. Para este símbolo del sistema abierto y escribaset OpenBLAS_HOME=C:\utils\OpenBLAS.
Ahora, descargue e instale CUDA disponible en https://developer.nvidia.com. Tenga en cuenta que, si ya tenía CUDA, luego instaló Microsoft VS2017, debe reinstalar CUDA ahora, para poder obtener los componentes del kit de herramientas de CUDA para la integración de Microsoft VS2017.
A continuación, debe descargar e instalar cuDNN.
A continuación, debe descargar e instalar git que se encuentra en https://gitforwindows.org/ además.
Una vez que haya instalado todas las dependencias necesarias, siga los pasos que se indican a continuación para crear el código fuente de MXNet
Step 1- Abra el símbolo del sistema en Windows.
Step 2- Ahora, usando el siguiente comando, descargue el código fuente de MXNet de GitHub:
cd C:\
git clone https://github.com/apache/incubator-mxnet.git --recursive
Step 3- A continuación, verifique lo siguiente -
DCUDNN_INCLUDE and DCUDNN_LIBRARY las variables de entorno apuntan al include carpeta y cudnn.lib archivo de su ubicación instalada CUDA
C:\incubator-mxnet es la ubicación del código fuente que acaba de clonar en el paso anterior.
Step 4- Luego, usando el siguiente comando, cree una compilación directory y también ir al directorio, por ejemplo
mkdir C:\incubator-mxnet\build
cd C:\incubator-mxnet\build
Step 5- Ahora, usando cmake, compile el código fuente de MXNet de la siguiente manera:
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 vez que el CMake se haya completado con éxito, use el siguiente comando para compilar el código fuente de MXNet
msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount
Option 2: Build with Microsoft Visual Studio 2015
Para construir e instalar MXNet usted mismo utilizando Microsoft Visual Studio 2015, necesita las siguientes dependencias.
Instale / actualice Microsoft Visual Studio 2015. El requisito mínimo para construir MXnet desde la fuente es la Actualización 3 de Microsoft Visual Studio 2015. Puede usar Tools -> Extensions and Updates... | Product Updates menú para actualizarlo.
A continuación, debe descargar e instalar CMake que está disponible en https://cmake.org/download/. Se recomienda utilizarCMake v3.12.2 que esta en https://cmake.org/download/, porque está probado con MXNet.
Ahora, descargue y ejecute el paquete OpenCV disponible en https://excellmedia.dl.sourceforge.netque descomprimirá varios archivos. Depende de usted si desea colocarlos en otro directorio o no.
A continuación, necesitamos establecer la variable de entorno OpenCV_DIR para apuntar al OpenCVdirectorio de compilación que acabamos de descomprimir. Para esto, abra el símbolo del sistema y escriba setOpenCV_DIR=C:\opencv\build\x64\vc14\bin.
Un punto importante es que si no tiene Intel MKL (Math Kernel Library) instalado, puede instalarlo.
Otro paquete de código abierto que puede utilizar es OpenBLAS. Aquí para obtener más instrucciones, asumimos que está utilizandoOpenBLAS.
Entonces, descargue el OpenBLAS paquete disponible en https://excellmedia.dl.sourceforge.net y descomprima el archivo, cámbiele el nombre a OpenBLAS y colóquelo en C: \ utils.
A continuación, debemos configurar la variable de entorno OpenBLAS_HOME para que apunte al directorio OpenBLAS que contiene los directorios include y lib. Puede encontrar el directorio enC:\Program files (x86)\OpenBLAS\
Tenga en cuenta que, si ya tenía CUDA y luego instaló Microsoft VS2015, debe reinstalar CUDA ahora para poder obtener los componentes del kit de herramientas de CUDA para la integración de Microsoft VS2017.
A continuación, debe descargar e instalar cuDNN.
Ahora, necesitamos establecer la variable de entorno CUDACXX para que apunte al CUDA Compiler(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe por ejemplo).
Del mismo modo, también necesitamos establecer la variable de entorno CUDNN_ROOT para apuntar al cuDNN directorio que contiene el include, lib y bin directoriosC:\Downloads\cudnn-9.1-windows7-x64-v7\cuda por ejemplo).
Una vez que haya instalado todas las dependencias necesarias, siga los pasos que se indican a continuación para crear el código fuente de MXNet
Step 1- Primero, descargue el código fuente MXNet de GitHub−
cd C:\
git clone https://github.com/apache/incubator-mxnet.git --recursive
Step 2- A continuación, use CMake para crear un Visual Studio en ./build.
Step 3- Ahora, en Visual Studio, necesitamos abrir el archivo de la solución,.slny compílelo. Estos comandos producirán una biblioteca llamadamxnet.dll en el ./build/Release/ or ./build/Debug carpeta
Step 4- Una vez que CMake se haya completado con éxito, use el siguiente comando para compilar el código fuente de MXNet
msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount
Unidad Central de Procesamiento (CPU)
Aquí, usaremos varios métodos, a saber, Pip, Docker y Source para instalar MXNet cuando estemos usando CPU para procesar
Utilizando el método Pip
Si planea construir MXNet en Windows con CPU, hay dos opciones para instalar MXNet usando un paquete de Python:
Install with CPUs
Use el siguiente comando para instalar MXNet con CPU con Python−
pip install mxnet
Install with Intel CPUs
Como se mencionó anteriormente, MXNet tiene soporte experimental para Intel MKL y MKL-DNN. Utilice el siguiente comando para instalar MXNet con CPU Intel con Python−
pip install mxnet-mkl
Utilizando Docker
Puede encontrar las imágenes de la ventana acoplable con MXNet en DockerHub, disponible en https://hub.docker.com/u/mxnet Veamos los pasos a continuación, para instalar MXNet usando Docker con CPU−
Step 1- Primero, siguiendo las instrucciones de instalación de la ventana acoplable que se pueden leer en https://docs.docker.com/docker-for-mac/install. Necesitamos instalar Docker en nuestra máquina.
Step 2- Al usar el siguiente comando, puede extraer la imagen de la ventana acoplable MXNet
$ docker pull mxnet/python
Ahora, para ver si la extracción de la imagen de la ventana acoplable de mxnet / python fue exitosa, podemos enumerar las imágenes de la ventana acoplable de la siguiente manera:
$ docker images
Para obtener las velocidades de inferencia más rápidas con MXNet, se recomienda utilizar la última versión de MXNet con Intel MKL-DNN.
Compruebe los comandos a continuación
$ docker pull mxnet/python:1.3.0_cpu_mkl
$ docker images
Instalación de MXNet en la nube y dispositivos
Esta sección destaca cómo instalar Apache MXNet en la nube y en dispositivos. Comencemos por aprender a instalar MXNet en la nube.
Instalación de MXNet en la nube
También puede obtener Apache MXNet en varios proveedores de nube con Graphical Processing Unit (GPU)apoyo. Otros dos tipos de apoyo que puede encontrar son los siguientes:
- Soporte híbrido de GPU / CPU para casos de uso como inferencia escalable.
- Compatibilidad con GPU factorial con AWS Elastic Inference.
A continuación, se muestran los proveedores de la nube que brindan compatibilidad con GPU con diferentes máquinas virtuales para Apache MXNet
La consola de Alibaba
Puede crear el NVIDIA GPU Cloud Virtual Machine (VM) disponible en https://docs.nvidia.com/ngc con la consola de Alibaba y use Apache MXNet.
Servicios web de Amazon
También proporciona compatibilidad con GPU y ofrece los siguientes servicios para Apache MXNet:
Amazon SageMaker
Gestiona el entrenamiento y la implementación de modelos Apache MXNet.
AMI de aprendizaje profundo de AWS
Proporciona un entorno Conda preinstalado para Python 2 y Python 3 con Apache MXNet, CUDA, cuDNN, MKL-DNN y AWS Elastic Inference.
Entrenamiento dinámico en AWS
Proporciona la formación para la configuración EC2 manual experimental, así como para la configuración semiautomática de CloudFormation.
Puedes usar NVIDIA VM disponible en https://aws.amazon.com con los servicios web de Amazon.
Google Cloud Platform
Google también ofrece NVIDIA GPU cloud image que está disponible en https://console.cloud.google.com para trabajar con Apache MXNet.
Microsoft Azure
Microsoft Azure Marketplace también ofrece NVIDIA GPU cloud image disponible en https://azuremarketplace.microsoft.com para trabajar con Apache MXNet.
Oracle Cloud
Oracle también ofrece NVIDIA GPU cloud image disponible en https://docs.cloud.oracle.com para trabajar con Apache MXNet.
Unidad Central de Procesamiento (CPU)
Apache MXNet funciona en la instancia exclusiva de CPU de cada proveedor de nube. Hay varios métodos para instalar, como
Instrucciones de instalación de Python pip.
Instrucciones de Docker.
Opción preinstalada como Amazon Web Services que proporciona AWS Deep Learning AMI (con un entorno Conda preinstalado para Python 2 y Python 3 con MXNet y MKL-DNN).
Instalación de MXNet en dispositivos
Aprendamos a instalar MXNet en dispositivos.
Frambuesa pi
También puede ejecutar Apache MXNet en dispositivos Raspberry Pi 3B, ya que MXNet también es compatible con el sistema operativo Respbian ARM. Para ejecutar MXNet sin problemas en la Raspberry Pi3, se recomienda tener un dispositivo que tenga más de 1 GB de RAM y una tarjeta SD con al menos 4 GB de espacio libre.
A continuación se muestran las formas con la ayuda de las cuales puede crear MXNet para Raspberry Pi e instalar los enlaces de Python para la biblioteca también:
Instalación rápida
La rueda Python preconstruida se puede utilizar en una Raspberry Pi 3B con Stretch para una instalación rápida. Uno de los problemas importantes con este método es que necesitamos instalar varias dependencias para que Apache MXNet funcione.
Instalación de Docker
Puede seguir las instrucciones de instalación de la ventana acoplable, que están disponibles en https://docs.docker.com/engine/install/ubuntu/para instalar Docker en su máquina. Para este propósito, también podemos instalar y usar Community Edition (CE).
Construcción nativa (de la fuente)
Para instalar MXNet desde la fuente, debemos seguir los siguientes dos pasos:
Paso 1
Build the shared library from the Apache MXNet C++ source code
Para construir la biblioteca compartida en la versión de Raspberry Wheezy y posteriores, necesitamos las siguientes dependencias:
Git- Es necesario extraer el código de GitHub.
Libblas- Se requiere para operaciones algebraicas lineales.
Libopencv- Se requiere para operaciones relacionadas con la visión por computadora. Sin embargo, es opcional si desea guardar su RAM y espacio en disco.
C++ Compiler- Se requiere para compilar y construir código fuente MXNet. A continuación se muestran los compiladores compatibles que admiten C ++ 11−
G ++ (4.8 o versión posterior)
Clang(3.9-6)
Utilice los siguientes comandos para instalar las dependencias mencionadas anteriormente
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
A continuación, necesitamos clonar el repositorio de código fuente de MXNet. Para esto, use el siguiente comando git en su directorio de inicio
git clone https://github.com/apache/incubator-mxnet.git --recursive
cd incubator-mxnet
Ahora, con la ayuda de los siguientes comandos, cree la biblioteca compartida:
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 vez que ejecute los comandos anteriores, comenzará el proceso de compilación que tardará un par de horas en finalizar. Obtendrás un archivo llamadolibmxnet.so en el directorio de compilación.
Paso 2
Install the supported language-specific packages for Apache MXNet
En este paso, instalaremos los enlaces MXNet Pythin. Para hacerlo, necesitamos ejecutar el siguiente comando en el directorio MXNet -
cd python
pip install --upgrade pip
pip install -e .
Alternativamente, con el siguiente comando, también puede crear un whl package instalable con pip-
ci/docker/runtime_functions.sh build_wheel python/ $(realpath build)
Dispositivos NVIDIA Jetson
También puede ejecutar Apache MXNet en dispositivos NVIDIA Jetson, como TX2 o Nanocomo MXNet también es compatible con el sistema operativo Ubuntu Arch64. Para ejecutar MXNet sin problemas en los dispositivos NVIDIA Jetson, es necesario tener CUDA instalado en su dispositivo Jetson.
Las siguientes son las formas con la ayuda de las cuales puede construir MXNet para dispositivos NVIDIA Jetson:
Usando una rueda de pip Jetson MXNet para el desarrollo de Python
De la fuente
Pero, antes de construir MXNet de cualquiera de las formas mencionadas anteriormente, debe instalar las siguientes dependencias en sus dispositivos Jetson:
Dependencias de Python
Para utilizar la API de Python, necesitamos las siguientes dependencias:
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
Clonar el repositorio de código fuente de MXNet
Al usar el siguiente comando git en su directorio de inicio, clone el repositorio de código fuente de MXNet
git clone --recursive https://github.com/apache/incubator-mxnet.git mxnet
Configurar variables de entorno
Agregue lo siguiente en su .profile archivo en su directorio personal
export PATH=/usr/local/cuda/bin:$PATH
export MXNET_HOME=$HOME/mxnet/
export PYTHONPATH=$MXNET_HOME/python:$PYTHONPATH
Ahora, aplique el cambio inmediatamente con el siguiente comando:
source .profile
Configurar CUDA
Antes de configurar CUDA, con nvcc, debe verificar qué versión de CUDA se está ejecutando
nvcc --version
Supongamos que, si hay más de una versión de CUDA instalada en su dispositivo o computadora y desea cambiar las versiones de CUDA, utilice lo siguiente y reemplace el enlace simbólico a la versión que desee:
sudo rm /usr/local/cuda
sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda
El comando anterior cambiará a CUDA 10.0, que está preinstalado en el dispositivo NVIDIA Jetson Nano.
Una vez que haya terminado con los requisitos previos mencionados anteriormente, ahora puede instalar MXNet en dispositivos NVIDIA Jetson. Entonces, comprendamos las formas con la ayuda de las cuales puede instalar MXNet−
By using a Jetson MXNet pip wheel for Python development- Si desea utilizar una rueda de Python preparada, descargue lo siguiente en su Jetson y ejecútelo:
MXNet 1.4.0 (para Python 3) disponible en https://docs.docker.com
MXNet 1.4.0 (para Python 2) disponible en https://docs.docker.com
Construcción nativa (de la fuente)
Para instalar MXNet desde la fuente, debemos seguir los siguientes dos pasos:
Paso 1
Build the shared library from the Apache MXNet C++ source code
Para construir la biblioteca compartida a partir del código fuente de Apache MXNet C ++, puede usar el método Docker o hacerlo manualmente
Método Docker
En este método, primero debe instalar Docker y poder ejecutarlo sin sudo (que también se explica en los pasos anteriores). Una vez hecho esto, ejecute lo siguiente para ejecutar la compilación cruzada a través de Docker
$MXNET_HOME/ci/build.py -p jetson
Manual
En este método, debe editar el Makefile (con el comando a continuación) para instalar MXNet con enlaces CUDA para aprovechar las unidades de procesamiento gráfico (GPU) en los dispositivos NVIDIA Jetson:
cp $MXNET_HOME/make/crosscompile.jetson.mk config.mk
Después de editar el Makefile, debe editar el archivo config.mk para realizar algunos cambios adicionales en el dispositivo NVIDIA Jetson.
Para ello, actualice la siguiente configuración
Actualice la ruta CUDA: USE_CUDA_PATH = / usr / local / cuda
Agregue -gencode arch = compute-63, code = sm_62 a la configuración CUDA_ARCH.
Actualice la configuración de NVCC: NVCCFLAGS: = -m64
Encienda OpenCV: USE_OPENCV = 1
Ahora, para asegurarnos de que MXNet se construya con la aceleración de baja precisión de nivel de hardware de Pascal, necesitamos editar el Mshadow Makefile de la siguiente manera:
MSHADOW_CFLAGS += -DMSHADOW_USE_PASCAL=1
Finalmente, con la ayuda del siguiente comando, puede construir la biblioteca Apache MXNet completa
cd $MXNET_HOME
make -j $(nproc)
Una vez que ejecute los comandos anteriores, comenzará el proceso de compilación que tardará un par de horas en finalizar. Obtendrás un archivo llamadolibmxnet.so en el mxnet/lib directory.
Paso 2
Install the Apache MXNet Python Bindings
En este paso, instalaremos enlaces MXNet Python. Para hacerlo, debemos ejecutar el siguiente comando en el directorio MXNet
cd $MXNET_HOME/python
sudo pip install -e .
Una vez que haya realizado los pasos anteriores, estará listo para ejecutar MXNet en sus dispositivos NVIDIA Jetson TX2 o Nano. Se puede verificar con el siguiente comando:
import mxnet
mxnet.__version__
Devolverá el número de versión si todo funciona correctamente.