Apache MXNet - установка MXNet

Чтобы начать работу с MXNet, первое, что нам нужно сделать, это установить его на свой компьютер. Apache MXNet работает практически на всех доступных платформах, включая Windows, Mac и Linux.

ОС Linux

Мы можем установить MXNet в ОС Linux следующими способами:

Графический процессор (GPU)

Здесь мы будем использовать различные методы, а именно Pip, Docker и Source, для установки MXNet, когда мы используем графический процессор для обработки -

Используя метод Pip

Вы можете использовать следующую команду для установки MXNet в вашей ОС Linus -

pip install mxnet

Apache MXNet также предлагает пакеты пакетов MKL, которые намного быстрее работают на оборудовании Intel. Вот напримерmxnet-cu101mkl означает, что -

  • Пакет построен с использованием CUDA / cuDNN

  • В пакете включен MKL-DNN

  • Версия CUDA - 10.1

Для другого варианта вы также можете обратиться к https://pypi.org/project/mxnet/.

Используя Docker

Вы можете найти образы докеров с MXNet в DockerHub, который доступен по адресу https://hub.docker.com/u/mxnet Давайте проверим следующие шаги, чтобы установить MXNet с помощью Docker с графическим процессором -

Step 1- Во-первых, следуя инструкциям по установке докеров, которые доступны по адресу https://docs.docker.com/engine/install/ubuntu/. Нам нужно установить Docker на нашу машину.

Step 2- Чтобы включить использование графических процессоров из контейнеров докеров, нам нужно установить nvidia-docker-plugin. Вы можете следовать инструкциям по установке, приведенным наhttps://github.com/NVIDIA/nvidia-docker/wiki.

Step 3- Используя следующую команду, вы можете вытащить образ докера MXNet -

$ sudo docker pull mxnet/python:gpu

Теперь, чтобы увидеть, было ли извлечение образа докера mxnet / python успешным, мы можем перечислить образы докеров следующим образом:

$ sudo docker images

Для максимальной скорости вывода с MXNet рекомендуется использовать последнюю версию MXNet с Intel MKL-DNN. Проверьте команды ниже -

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

Из источника

Чтобы создать разделяемую библиотеку MXNet из исходного кода с помощью графического процессора, сначала нам нужно настроить среду для CUDA и cuDNN следующим образом:

  • Загрузите и установите CUDA toolkit, здесь рекомендуется CUDA 9.2.

  • Затем загрузите cuDNN 7.1.4.

  • Теперь нам нужно распаковать файл. Также необходимо перейти в корневой каталог cuDNN. Также переместите заголовок и библиотеки в локальную папку CUDA Toolkit следующим образом:

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

После настройки среды для CUDA и cuDNN выполните следующие действия, чтобы создать общую библиотеку MXNet из источника:

Step 1- Во-первых, нам нужно установить необходимые пакеты. Эти зависимости требуются в Ubuntu версии 16.04 или новее.

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

Step 2- На этом этапе мы загрузим исходный код MXNet и настроим. Сначала давайте клонируем репозиторий, используя следующую команду:

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

Step 3- Используя следующие команды, вы можете создать общую общую библиотеку ядра MXNet:

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

Two important points regarding the above step is as follows−

Если вы хотите создать версию отладки, укажите следующее:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Чтобы установить количество параллельных заданий компиляции, укажите следующее:

cmake --build . --parallel N

После успешной сборки основной разделяемой библиотеки MXNet в build папка в вашем MXNet project root, ты найдешь libmxnet.so который необходим для установки языковых привязок (необязательно).

Центральный процессор (ЦП)

Здесь мы будем использовать различные методы, а именно Pip, Docker и Source, для установки MXNet, когда мы используем ЦП для обработки -

Используя метод Pip

Вы можете использовать следующую команду для установки MXNet на вашу ОС Linus:

pip install mxnet

Apache MXNet также предлагает пакеты pip с поддержкой MKL-DNN, которые работают намного быстрее при работе на оборудовании Intel.

pip install mxnet-mkl

Используя Docker

Вы можете найти образы докеров с MXNet в DockerHub, который доступен по адресу https://hub.docker.com/u/mxnet. Давайте проверим следующие шаги, чтобы установить MXNet с помощью Docker с ЦП -

Step 1- Во-первых, следуя инструкциям по установке докеров, которые доступны по адресу https://docs.docker.com/engine/install/ubuntu/. Нам нужно установить Docker на нашу машину.

Step 2- Используя следующую команду, вы можете извлечь образ докера MXNet:

$ sudo docker pull mxnet/python

Теперь, чтобы увидеть, было ли извлечение образа докера mxnet / python успешным, мы можем перечислить образы докеров следующим образом:

$ sudo docker images

Для максимальной скорости вывода с MXNet рекомендуется использовать последнюю версию MXNet с Intel MKL-DNN.

Проверьте команды ниже -

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

Из источника

Чтобы создать общую библиотеку MXNet из источника с ЦП, выполните следующие действия:

Step 1- Во-первых, нам нужно установить необходимые пакеты. Эти зависимости требуются в Ubuntu версии 16.04 или новее.

sudo apt-get update

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

Step 2- На этом этапе мы загрузим исходный код MXNet и настроим. Сначала давайте клонируем репозиторий, используя следующую команду:

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

cd mxnet
cp config/linux.cmake config.cmake

Step 3- Используя следующие команды, вы можете создать основную общую библиотеку MXNet:

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

Two important points regarding the above step is as follows−

Если вы хотите создать отладочную версию, укажите следующее:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Чтобы установить количество параллельных заданий компиляции, укажите следующее:

cmake --build . --parallel N

После успешной сборки основной разделяемой библиотеки MXNet в build В папке вашего проекта MXNet вы найдете libmxnet.so, который требуется для установки языковых привязок (необязательно).

MacOS

Мы можем установить MXNet на MacOS следующими способами:

Графический процессор (GPU)

Если вы планируете построить MXNet на MacOS с графическим процессором, тогда НЕТ доступных методов Pip и Docker. Единственный способ в этом случае - собрать его из исходников.

Из источника

Чтобы создать разделяемую библиотеку MXNet из исходного кода с помощью графического процессора, сначала нам нужно настроить среду для CUDA и cuDNN. Вам нужно следоватьNVIDIA CUDA Installation Guide который доступен на https://docs.nvidia.com и cuDNN Installation Guide, который доступен на https://docs.nvidia.com/deeplearning для Mac OS.

Обратите внимание, что в 2019 году CUDA перестала поддерживать macOS. Фактически, будущие версии CUDA также могут не поддерживать macOS.

После настройки среды для CUDA и cuDNN выполните следующие действия, чтобы установить MXNet из исходного кода в OS X (Mac) -

Step 1- Поскольку нам нужны некоторые зависимости от OS x, во-первых, нам нужно установить необходимые пакеты.

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

Мы также можем создать MXNet без OpenCV, поскольку opencv является необязательной зависимостью.

Step 2- На этом этапе мы загрузим исходный код MXNet и настроим. Сначала давайте клонируем репозиторий, используя следующую команду:

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

cd mxnet
cp config/linux.cmake config.cmake

Для GPU с поддержкой сначала необходимо установить зависимости CUDA, потому что, когда кто-то пытается создать сборку с поддержкой GPU на машине без GPU, сборка MXNet не может автоматически определить архитектуру вашего GPU. В таких случаях MXNet будет нацелена на все доступные архитектуры GPU.

Step 3- Используя следующие команды, вы можете создать общую общую библиотеку ядра MXNet:

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

Два важных момента относительно вышеуказанного шага заключаются в следующем:

Если вы хотите создать версию отладки, укажите следующее:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Чтобы задать количество параллельных заданий компиляции, укажите следующее:

cmake --build . --parallel N

После успешной сборки основной разделяемой библиотеки MXNet в build папка в вашем MXNet project root, ты найдешь libmxnet.dylib, который необходим для установки языковых привязок (необязательно).

Центральный процессор (ЦП)

Здесь мы будем использовать различные методы, а именно Pip, Docker и Source для установки MXNet, когда мы используем ЦП для обработки -

Используя метод Pip

Вы можете использовать следующую команду для установки MXNet в вашей ОС Linus

pip install mxnet

Используя Docker

Вы можете найти образы докеров с MXNet в DockerHub, который доступен по адресу https://hub.docker.com/u/mxnet. Давайте проверим следующие шаги, чтобы установить MXNet с помощью Docker с CPU -

Step 1- Во-первых, следуя docker installation instructions которые доступны на https://docs.docker.com/docker-for-mac нам нужно установить Docker на нашу машину.

Step 2- Используя следующую команду, вы можете извлечь образ докера MXNet:

$ docker pull mxnet/python

Теперь, чтобы увидеть, было ли извлечение образа докеров mxnet / python успешным, мы можем перечислить образы докеров следующим образом:

$ docker images

Для максимальной скорости вывода с MXNet рекомендуется использовать последнюю версию MXNet с Intel MKL-DNN. Проверьте команды ниже:

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

Из источника

Следуйте инструкциям ниже, чтобы установить MXNet из исходного кода в OS X (Mac) -

Step 1- Так как нам нужны некоторые зависимости от OS x, сначала нам нужно установить необходимые пакеты.

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

Мы также можем создать MXNet без OpenCV, поскольку opencv является необязательной зависимостью.

Step 2- На этом этапе мы загрузим исходный код MXNet и настроим. Во-первых, давайте клонируем репозиторий, используя следующую команду:

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

cd mxnet

cp config/linux.cmake config.cmake

Step 3- Используя следующие команды, вы можете создать основную общую библиотеку MXNet:

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

Two important points regarding the above step is as follows−

Если вы хотите создать версию отладки, укажите следующее:

cmake -DCMAKE_BUILD_TYPE=Debug -GNinja ..

Чтобы установить количество параллельных заданий компиляции, укажите следующее:

cmake --build . --parallel N

После успешной сборки основной разделяемой библиотеки MXNet в build папка в вашем MXNet project root, ты найдешь libmxnet.dylib, который необходим для установки языковых привязок (необязательно).

ОС Windows

Чтобы установить MXNet в Windows, выполните следующие действия:

минимальные системные требования

  • Windows 7, 10, Server 2012 R2 или Server 2016

  • Visual Studio 2015 или 2017 (любой тип)

  • Python 2.7 или 3.6

  • pip

рекомендованные системные требования

  • Windows 10, Server 2012 R2 или Server 2016

  • Visual Studio 2017

  • Как минимум один графический процессор с поддержкой NVIDIA CUDA

  • Процессор с поддержкой MKL: процессор Intel® Xeon®, семейство процессоров Intel® Core ™, процессор Intel Atom® или процессор Intel® Xeon Phi ™

  • Python 2.7 или 3.6

  • pip

Графический процессор (GPU)

Используя метод Пипа -

Если вы планируете построить MXNet в Windows с графическими процессорами NVIDIA, есть два варианта установки MXNet с поддержкой CUDA с пакетом Python:

Установить с поддержкой CUDA

Ниже приведены шаги, с помощью которых мы можем настроить MXNet с CUDA.

Step 1- Сначала установите Microsoft Visual Studio 2017 или Microsoft Visual Studio 2015.

Step 2- Затем загрузите и установите NVIDIA CUDA. Рекомендуется использовать CUDA версий 9.2 или 9.0, потому что некоторые проблемы с CUDA 9.1 были выявлены в прошлом.

Step 3- Теперь загрузите и установите NVIDIA_CUDA_DNN.

Step 4- Наконец, используя следующую команду pip, установите MXNet с CUDA–

pip install mxnet-cu92

Установить с поддержкой CUDA и MKL

Ниже приведены шаги, с помощью которых мы можем настроить MXNet с CUDA и MKL.

Step 1- Сначала установите Microsoft Visual Studio 2017 или Microsoft Visual Studio 2015.

Step 2- Далее скачиваем и устанавливаем intel MKL

Step 3- Теперь загрузите и установите NVIDIA CUDA.

Step 4- Теперь загрузите и установите NVIDIA_CUDA_DNN.

Step 5- Наконец, используя следующую команду pip, установите MXNet с MKL.

pip install mxnet-cu92mkl

Из источника

Чтобы собрать базовую библиотеку MXNet из исходного кода с помощью графического процессора, у нас есть два следующих варианта:

Option 1− Build with Microsoft Visual Studio 2017

Чтобы собрать и установить MXNet самостоятельно с помощью Microsoft Visual Studio 2017, вам потребуются следующие зависимости.

Install/update Microsoft Visual Studio.

  • Если Microsoft Visual Studio еще не установлена ​​на вашем компьютере, сначала загрузите и установите его.

  • Он предложит установить Git. Также установите его.

  • Если Microsoft Visual Studio уже установлена ​​на вашем компьютере, но вы хотите его обновить, перейдите к следующему шагу, чтобы изменить вашу установку. Здесь вам также будет предоставлена ​​возможность обновить Microsoft Visual Studio.

Следуйте инструкциям по открытию установщика Visual Studio, доступным по адресу https://docs.microsoft.com/en-us для изменения отдельных компонентов.

В приложении Visual Studio Installer обновите при необходимости. После этого ищите и проверяйтеVC++ 2017 version 15.4 v14.11 toolset и нажмите Modify.

Теперь, используя следующую команду, измените версию Microsoft VS2017 на v14.11–

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

Далее вам необходимо скачать и установить CMake доступны на https://cmake.org/download/ Рекомендуется использовать CMake v3.12.2 который доступен на https://cmake.org/download/ потому что он протестирован с MXNet.

Теперь загрузите и запустите OpenCV пакет доступен на https://sourceforge.net/projects/opencvlibrary/который распакует несколько файлов. Вам решать, хотите ли вы разместить их в другом каталоге или нет. Здесь мы будем использовать путьC:\utils(mkdir C:\utils) как наш путь по умолчанию.

Затем нам нужно установить переменную среды OpenCV_DIR, чтобы она указывала на каталог сборки OpenCV, который мы только что распаковали. Для этого откройте командную строку и введитеset OpenCV_DIR=C:\utils\opencv\build.

Одним из важных моментов является то, что если у вас не установлен Intel MKL (Math Kernel Library), вы можете установить его.

Еще один пакет с открытым исходным кодом, который вы можете использовать, это OpenBLAS. Здесь для дальнейших инструкций мы предполагаем, что вы используетеOpenBLAS.

Итак, загрузите OpenBlas пакет, который доступен по адресу https://sourceforge.net и разархивируйте файл, переименуйте его в OpenBLAS и положил под C:\utils.

Далее нам нужно установить переменную окружения OpenBLAS_HOME чтобы указать на каталог OpenBLAS, содержащий include и libкаталоги. Для этого откройте командную строку и введитеset OpenBLAS_HOME=C:\utils\OpenBLAS.

Теперь загрузите и установите CUDA, доступную по адресу https://developer.nvidia.com. Обратите внимание: если у вас уже был CUDA, а затем установлен Microsoft VS2017, вам необходимо переустановить CUDA сейчас, чтобы вы могли получить компоненты инструментария CUDA для интеграции Microsoft VS2017.

Далее вам нужно скачать и установить cuDNN.

Затем вам нужно скачать и установить git, который находится по адресу https://gitforwindows.org/ также.

После того, как вы установили все необходимые зависимости, следуйте инструкциям ниже, чтобы создать исходный код MXNet:

Step 1- Открыть командную строку в Windows.

Step 2- Теперь, используя следующую команду, загрузите исходный код MXNet с GitHub:

cd C:\

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

Step 3- Затем проверьте следующее:

DCUDNN_INCLUDE and DCUDNN_LIBRARY переменные среды указывают на include папка и cudnn.lib файл вашего установленного CUDA

C:\incubator-mxnet - это местоположение исходного кода, который вы только что клонировали на предыдущем шаге.

Step 4- Затем, используя следующую команду, создайте сборку directory а также зайти в каталог, например -

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

Step 5- Теперь, используя cmake, скомпилируйте исходный код MXNet следующим образом:

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- После успешного завершения CMake используйте следующую команду для компиляции исходного кода MXNet:

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

Option 2: Build with Microsoft Visual Studio 2015

Чтобы собрать и установить MXNet самостоятельно с помощью Microsoft Visual Studio 2015, вам потребуются следующие зависимости.

Установите / обновите Microsoft Visual Studio 2015. Минимальное требование для сборки MXnet из источника - обновление 3 Microsoft Visual Studio 2015. Вы можете использовать Tools -> Extensions and Updates... | Product Updates меню для его обновления.

Далее вам необходимо скачать и установить CMake который доступен на https://cmake.org/download/. Рекомендуется использоватьCMake v3.12.2 который находится в https://cmake.org/download/, потому что он протестирован с MXNet.

Теперь загрузите и запустите пакет OpenCV, доступный по адресу https://excellmedia.dl.sourceforge.netкоторый распакует несколько файлов. Вам решать, хотите ли вы поместить их в другой каталог или нет.

Далее нам нужно установить переменную окружения OpenCV_DIR указать на OpenCVbuild каталог, который мы только что распаковали. Для этого откройте командную строку и введите setOpenCV_DIR=C:\opencv\build\x64\vc14\bin.

Одним из важных моментов является то, что если у вас не установлен Intel MKL (Math Kernel Library), вы можете установить его.

Еще один пакет с открытым исходным кодом, который вы можете использовать, это OpenBLAS. Здесь для дальнейших инструкций мы предполагаем, что вы используетеOpenBLAS.

Итак, загрузите OpenBLAS пакет доступен на https://excellmedia.dl.sourceforge.net и разархивируйте файл, переименуйте его в OpenBLAS и поместите в папку C: \ utils.

Затем нам нужно установить переменную среды OpenBLAS_HOME так, чтобы она указывала на каталог OpenBLAS, содержащий каталоги include и lib. Вы можете найти каталог вC:\Program files (x86)\OpenBLAS\

Обратите внимание: если у вас уже был CUDA, а затем установлен Microsoft VS2015, вам необходимо переустановить CUDA сейчас, чтобы вы могли получить компоненты набора инструментов CUDA для интеграции с Microsoft VS2017.

Далее вам нужно скачать и установить cuDNN.

Теперь нам нужно установить переменную среды CUDACXX, чтобы она указывала на CUDA Compiler(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\bin\nvcc.exe например).

Точно так же нам также нужно установить переменную окружения CUDNN_ROOT указать на cuDNN каталог, содержащий include, lib и bin каталоги (C:\Downloads\cudnn-9.1-windows7-x64-v7\cuda например).

После того, как вы установили все необходимые зависимости, следуйте инструкциям ниже, чтобы создать исходный код MXNet:

Step 1- Сначала загрузите исходный код MXNet с GitHub–

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

Step 2- Затем используйте CMake для создания Visual Studio в ./build.

Step 3- Теперь в Visual Studio нам нужно открыть файл решения,.sln, и скомпилируйте его. Эти команды создадут библиотеку под названиемmxnet.dll в ./build/Release/ or ./build/Debug папка

Step 4- После успешного завершения CMake используйте следующую команду для компиляции исходного кода MXNet.

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

Центральный процессор (ЦП)

Здесь мы будем использовать различные методы, а именно Pip, Docker и Source для установки MXNet, когда мы используем ЦП для обработки -

Используя метод Pip

Если вы планируете построить MXNet в Windows с процессорами, есть два варианта установки MXNet с использованием пакета Python:

Install with CPUs

Используйте следующую команду для установки MXNet с ЦП с Python -

pip install mxnet

Install with Intel CPUs

Как обсуждалось выше, MXNet имеет экспериментальную поддержку Intel MKL, а также MKL-DNN. Используйте следующую команду для установки MXNet с процессором Intel с Python -

pip install mxnet-mkl

Используя Docker

Вы можете найти образы докеров с MXNet по адресу DockerHub, доступны на https://hub.docker.com/u/mxnet Давайте проверим следующие шаги, чтобы установить MXNet с помощью Docker с CPU -

Step 1- Во-первых, следуя инструкциям по установке докера, которые можно прочитать на https://docs.docker.com/docker-for-mac/install. Нам нужно установить Docker на нашу машину.

Step 2- Используя следующую команду, вы можете извлечь образ докера MXNet:

$ docker pull mxnet/python

Теперь, чтобы увидеть, было ли извлечение образа докеров mxnet / python успешным, мы можем перечислить образы докеров следующим образом:

$ docker images

Для максимальной скорости вывода с MXNet рекомендуется использовать последнюю версию MXNet с Intel MKL-DNN.

Проверьте команды ниже:

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

Установка MXNet в облаке и на устройствах

В этом разделе рассказывается, как установить Apache MXNet в облаке и на устройствах. Давайте начнем с изучения установки MXNet в облаке.

Установка MXNet в облаке

Вы также можете получить Apache MXNet у нескольких облачных провайдеров с Graphical Processing Unit (GPU)служба поддержки. Вы можете найти еще два вида поддержки:

  • Гибридная поддержка GPU / CPU для таких случаев использования, как масштабируемый вывод.
  • Факториальная поддержка GPU с AWS Elastic Inference.

Ниже приведены облачные провайдеры, обеспечивающие поддержку графического процессора с различными виртуальными машинами для Apache MXNet.

Консоль Alibaba

Вы можете создать NVIDIA GPU Cloud Virtual Machine (VM) доступны на https://docs.nvidia.com/ngc с помощью консоли Alibaba и используйте Apache MXNet.

Веб-сервисы Amazon

Он также обеспечивает поддержку графического процессора и предоставляет следующие услуги для Apache MXNet:

Amazon SageMaker

Он управляет обучением и развертыванием моделей Apache MXNet.

AWS Deep Learning AMI

Он предоставляет предустановленную среду Conda для Python 2 и Python 3 с Apache MXNet, CUDA, cuDNN, MKL-DNN и AWS Elastic Inference.

Динамическое обучение на AWS

Он обеспечивает обучение экспериментальной ручной настройке EC2, а также полуавтоматической настройке CloudFormation.

Вы можете использовать NVIDIA VM доступны на https://aws.amazon.com с веб-сервисами Amazon.

Облачная платформа Google

Google также предоставляет NVIDIA GPU cloud image который доступен на https://console.cloud.google.com работать с Apache MXNet.

Microsoft Azure

Microsoft Azure Marketplace также предоставляет NVIDIA GPU cloud image доступны на https://azuremarketplace.microsoft.com работать с Apache MXNet.

Oracle Cloud

Oracle также предоставляет NVIDIA GPU cloud image доступны на https://docs.cloud.oracle.com работать с Apache MXNet.

Центральный процессор (ЦП)

Apache MXNet работает с экземпляром, поддерживающим только ЦП каждого облачного провайдера. Существуют различные методы установки, такие как:

  • Инструкции по установке Python pip.

  • Инструкции Docker.

  • Предустановленная опция, такая как Amazon Web Services, которая предоставляет AWS Deep Learning AMI (с предварительно установленной средой Conda для Python 2 и Python 3 с MXNet и MKL-DNN).

Установка MXNet на устройства

Давайте узнаем, как установить MXNet на устройства.

Raspberry Pi

Вы также можете запустить Apache MXNet на устройствах Raspberry Pi 3B, поскольку MXNet также поддерживает ОС на базе Respbian ARM. Для бесперебойной работы MXNet на Raspberry Pi3 рекомендуется иметь устройство с более чем 1 ГБ ОЗУ и SD-карту с не менее 4 ГБ свободного места.

Ниже приведены способы, с помощью которых вы можете создать MXNet для Raspberry Pi, а также установить привязки Python для библиотеки:

Быстрая установка

Готовое колесо Python можно использовать на Raspberry Pi 3B с Stretch для быстрой установки. Одна из важных проблем этого метода заключается в том, что нам нужно установить несколько зависимостей, чтобы Apache MXNet заработал.

Установка Docker

Вы можете следовать инструкциям по установке докера, которые доступны по адресу https://docs.docker.com/engine/install/ubuntu/чтобы установить Docker на свой компьютер. Для этой цели мы также можем установить и использовать Community Edition (CE).

Собственная сборка (из исходников)

Чтобы установить MXNet из исходного кода, нам необходимо выполнить следующие два шага:

Шаг 1

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

Чтобы построить общую библиотеку на Raspberry версии Wheezy и более поздних, нам потребуются следующие зависимости:

  • Git- Требуется извлечь код с GitHub.

  • Libblas- Требуется для линейных алгебраических операций.

  • Libopencv- Требуется для операций, связанных с компьютерным зрением. Однако это необязательно, если вы хотите сэкономить оперативную память и дисковое пространство.

  • C++ Compiler- Требуется для компиляции и сборки исходного кода MXNet. Ниже перечислены поддерживаемые компиляторы, поддерживающие C ++ 11−.

    • G ++ (4.8 или более поздняя версия)

    • Clang(3.9-6)

Используйте следующие команды для установки вышеупомянутых зависимостей:

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

Затем нам нужно клонировать репозиторий исходного кода MXNet. Для этого используйте следующую команду git в своем домашнем каталоге:

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

cd incubator-mxnet

Теперь с помощью следующих команд создайте общую библиотеку:

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)

После того, как вы выполните указанные выше команды, начнется процесс сборки, который займет несколько часов. Вы получите файл с именемlibmxnet.so в каталоге сборки.

Шаг 2

Install the supported language-specific packages for Apache MXNet

На этом этапе мы установим привязки MXNet Pythin. Для этого нам нужно запустить следующую команду в каталоге MXNet:

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

Кроме того, с помощью следующей команды вы также можете создать whl package устанавливается с pip-

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

Устройства NVIDIA Jetson

Вы также можете запустить Apache MXNet на устройствах NVIDIA Jetson, таких как TX2 или же NanoПоскольку MXNet также поддерживает ОС на базе Ubuntu Arch64. Для бесперебойной работы MXNet на устройствах NVIDIA Jetson необходимо, чтобы на вашем устройстве Jetson был установлен CUDA.

Ниже приведены способы, с помощью которых вы можете создать MXNet для устройств NVIDIA Jetson:

  • Используя колесо конвейера Jetson MXNet для разработки Python

  • Из источника

Но перед сборкой MXNet любым из вышеупомянутых способов вам необходимо установить следующие зависимости на ваших устройствах Jetson:

Зависимости Python

Чтобы использовать Python API, нам нужны следующие зависимости:

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

Клонировать репозиторий исходного кода MXNet

Используя следующую команду git в своем домашнем каталоге, клонируйте репозиторий исходного кода MXNet:

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

Переменные среды установки

Добавьте следующее в свой .profile файл в вашем домашнем каталоге -

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

Теперь немедленно примените изменение с помощью следующей команды:

source .profile

Настроить CUDA

Перед настройкой CUDA с помощью nvcc вам необходимо проверить, какая версия CUDA работает -

nvcc --version

Предположим, если на вашем устройстве или компьютере установлено более одной версии CUDA и вы хотите переключить версии CUDA, используйте следующее и замените символическую ссылку на нужную версию:

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

Приведенная выше команда переключится на CUDA 10.0, которая предустановлена ​​на устройстве NVIDIA Jetson. Nano.

Выполнив указанные выше предварительные требования, вы можете установить MXNet на устройства NVIDIA Jetson. Итак, давайте разберемся, с помощью которых вы можете установить MXNet-

By using a Jetson MXNet pip wheel for Python development- Если вы хотите использовать подготовленное колесо Python, загрузите следующее в свой Jetson и запустите его:

  • MXNet 1.4.0 (для Python 3) доступно по адресу https://docs.docker.com

  • MXNet 1.4.0 (для Python 2) доступно по адресу https://docs.docker.com

Собственная сборка (из исходников)

Чтобы установить MXNet из исходного кода, нам необходимо выполнить следующие два шага:

Шаг 1

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

Чтобы создать общую библиотеку из исходного кода Apache MXNet C ++, вы можете использовать метод Docker или сделать это вручную -

Докер метод

В этом методе вам сначала нужно установить Docker и запустить его без sudo (что также объясняется в предыдущих шагах). После этого запустите следующее, чтобы выполнить кросс-компиляцию через Docker:

$MXNET_HOME/ci/build.py -p jetson

Руководство

В этом методе вам нужно отредактировать Makefile (с помощью команды ниже) для установки MXNet с привязками CUDA для использования графических процессоров (GPU) на устройствах NVIDIA Jetson:

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

После редактирования Makefile вам необходимо отредактировать файл config.mk, чтобы внести дополнительные изменения для устройства NVIDIA Jetson.

Для этого обновите следующие настройки:

  • Обновите путь CUDA: USE_CUDA_PATH = / usr / local / cuda

  • Добавьте -gencode arch = compute-63, code = sm_62 в настройку CUDA_ARCH.

  • Обновите настройки NVCC: NVCCFLAGS: = -m64

  • Включите OpenCV: USE_OPENCV = 1

Теперь, чтобы убедиться, что MXNet строится с аппаратным ускорением с низкой точностью Pascal, нам нужно отредактировать Mshadow Makefile следующим образом:

MSHADOW_CFLAGS += -DMSHADOW_USE_PASCAL=1

Наконец, с помощью следующей команды вы можете собрать полную библиотеку Apache MXNet:

cd $MXNET_HOME
make -j $(nproc)

После того, как вы выполните указанные выше команды, начнется процесс сборки, который займет несколько часов. Вы получите файл с именемlibmxnet.so в mxnet/lib directory.

Шаг 2

Install the Apache MXNet Python Bindings

На этом этапе мы установим привязки MXNet Python. Для этого нам нужно запустить следующую команду в каталоге MXNet:

cd $MXNET_HOME/python
sudo pip install -e .

Выполнив указанные выше действия, вы готовы запустить MXNet на своих устройствах NVIDIA Jetson TX2 или Nano. Это можно проверить с помощью следующей команды:

import mxnet
mxnet.__version__

Он вернет номер версии, если все работает правильно.