- Apache MXNet 教程
- Apache MXNet - 主页
- Apache MXNet - 简介
- Apache MXNet - 安装 MXNet
- Apache MXNet - 工具包和生态系统
- Apache MXNet - 系统架构
- Apache MXNet - 系统组件
- Apache MXNet - 统一操作员 API
- Apache MXNet - 分布式训练
- Apache MXNet - Python 包
- Apache MXNet - NDArray
- Apache MXNet - Gluon
- Apache MXNet - KVStore 和可视化
- Apache MXNet - Python API ndarray
- Apache MXNet - Python API 胶子
- Apache MXNet - Python API 自动分级和初始化程序
- Apache MXNet - Python API 符号
- Apache MXNet - Python API 模块
- Apache MXNet 有用资源
- Apache MXNet - 快速指南
- Apache MXNet - 有用资源
- Apache MXNet - 讨论
Apache MXNet - 安装 MXNet
要开始使用 MXNet,我们需要做的第一件事就是将其安装在我们的计算机上。Apache MXNet 适用于几乎所有可用平台,包括 Windows、Mac 和 Linux。
Linux操作系统
我们可以通过以下方式在 Linux 操作系统上安装 MXNet -
图形处理单元 (GPU)
在这里,当我们使用 GPU 进行处理时,我们将使用各种方法,即 Pip、Docker 和 Source 来安装 MXNet -
通过使用点值法
您可以使用以下命令在 Linus 操作系统上安装 MXNet -
pip install mxnet
Apache MXNet 还提供 MKL pip 软件包,在英特尔硬件上运行时速度要快得多。例如,mxnet-cu101mkl意味着 -
该软件包是使用 CUDA/cuDNN 构建的
该软件包启用了 MKL-DNN
CUDA版本是10.1
对于其他选项,您还可以参考https://pypi.org/project/mxnet/。
通过使用 Docker
您可以在 DockerHub 上找到带有 MXNet 的 docker 镜像,网址为https://hub.docker.com/u/mxnet让我们看看下面的步骤,通过使用带有 GPU 的 Docker 来安装 MXNet -
步骤 1 - 首先,按照https://docs.docker.com/engine/install/ubuntu/上提供的 docker 安装说明进行操作。我们需要在我们的机器上安装 Docker。
步骤 2 - 要从 docker 容器使用 GPU,接下来我们需要安装 nvidia-docker-plugin。您可以按照https://github.com/NVIDIA/nvidia-docker/wiki上给出的安装说明进行操作。
步骤 3 - 通过使用以下命令,您可以拉取 MXNet docker 映像 -
$ sudo docker pull mxnet/python:gpu
现在为了查看 mxnet/python docker 镜像拉取是否成功,我们可以列出 docker 镜像,如下所示 -
$ sudo docker images
为了通过 MXNet 获得最快的推理速度,建议使用带有 Intel MKL-DNN 的最新 MXNet。检查下面的命令 -
$ sudo docker pull mxnet/python:1.3.0_cpu_mkl $ sudo docker images
从源头
要使用 GPU 从源代码构建 MXNet 共享库,首先我们需要设置 CUDA 和 cuDNN 的环境,如下所示:
下载并安装CUDA工具包,这里推荐使用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 共享库 -
步骤 1 - 首先,我们需要安装必备包。Ubuntu 版本 16.04 或更高版本需要这些依赖项。
sudo apt-get update sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake
步骤 2 - 在此步骤中,我们将下载 MXNet 源并进行配置。首先让我们使用以下命令克隆存储库 -
git clone –recursive https://github.com/apache/incubator-mxnet.git mxnet cd mxnet cp config/linux_gpu.cmake #for build with CUDA
步骤 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 核心共享库后,在MXNet 项目根目录的构建文件夹中,您将找到安装语言绑定(可选)所需的libmxnet.so 。
中央处理器(CPU)
在这里,当我们使用 CPU 进行处理时,我们将使用各种方法,即 Pip、Docker 和 Source 来安装 MXNet -
通过使用点值法
您可以使用以下命令在 Linus 操作系统上安装 MXNet:
pip install mxnet
Apache MXNet 还提供支持 MKL-DNN 的 pip 包,在英特尔硬件上运行时速度要快得多。
pip install mxnet-mkl
通过使用 Docker
您可以在 DockerHub 上找到带有 MXNet 的 docker 镜像,该镜像位于https://hub.docker.com/u/mxnet。让我们看看下面使用 Docker 和 CPU 安装 MXNet 的步骤 -
步骤 1 - 首先,按照https://docs.docker.com/engine/install/ubuntu/上提供的 docker 安装说明进行操作。我们需要在我们的机器上安装 Docker。
步骤 2 - 通过使用以下命令,您可以拉取 MXNet docker 映像:
$ sudo docker pull mxnet/python
现在,为了查看 mxnet/python docker 镜像拉取是否成功,我们可以列出 docker 镜像,如下所示 -
$ sudo docker images
为了通过 MXNet 获得最快的推理速度,建议使用带有 Intel MKL-DNN 的最新 MXNet。
检查下面的命令 -
$ sudo docker pull mxnet/python:1.3.0_cpu_mkl $ sudo docker images
从源头
要使用 CPU 从源代码构建 MXNet 共享库,请按照以下步骤操作 -
步骤 1 - 首先,我们需要安装必备包。Ubuntu 版本 16.04 或更高版本需要这些依赖项。
sudo apt-get update sudo apt-get install -y build-essential git ninja-build ccache libopenblas-dev libopencv-dev cmake
步骤 2 - 在此步骤中,我们将下载 MXNet 源并进行配置。首先让我们使用以下命令克隆存储库:
git clone –recursive https://github.com/apache/incubator-mxnet.git mxnet cd mxnet cp config/linux.cmake config.cmake
步骤 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 核心共享库后,在MXNet 项目根目录的构建文件夹中,您将找到 libmxnet.so,这是安装语言绑定所需的(可选)。
MacOS
我们可以通过以下方式在 MacOS 上安装 MXNet:
图形处理单元 (GPU)
如果您计划使用 GPU 在 MacOS 上构建 MXNet,则没有可用的 Pip 和 Docker 方法。在这种情况下,唯一的方法是从源代码构建它。
从源头
要使用 GPU 从源代码构建 MXNet 共享库,首先我们需要设置 CUDA 和 cuDNN 的环境。对于 mac OS,您需要遵循NVIDIA CUDA 安装指南(可从https://docs.nvidia.com获取)和cuDNN 安装指南(可从https://docs.nvidia.com/deeplearning获取) 。
请注意,2019 年 CUDA 停止支持 macOS。事实上,未来版本的 CUDA 也可能不支持 macOS。
设置 CUDA 和 cuDNN 的环境后,请按照以下步骤在 OS X (Mac) 上从源代码安装 MXNet -
步骤 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
我们也可以在没有 OpenCV 的情况下构建 MXNet,因为 opencv 是一个可选依赖项。
步骤 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 架构。
步骤 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 核心共享库后,在MXNet 项目根目录的构建文件夹中,您将找到libmxnet.dylib,这是安装语言绑定所需的(可选)。
中央处理器(CPU)
在这里,当我们使用 CPU 进行处理时,我们将使用各种方法,即 Pip、Docker 和 Source 来安装 MXNet -
通过使用点值法
您可以使用以下命令在 Linus 操作系统上安装 MXNet
pip install mxnet
通过使用 Docker
您可以在 DockerHub 上找到带有 MXNet 的 docker 镜像,该镜像位于https://hub.docker.com/u/mxnet。让我们看看下面使用 Docker 和 CPU 安装 MXNet 的步骤:
步骤 1 - 首先,按照https://docs.docker.com/docker-for-mac上提供的docker 安装说明进行操作,我们需要在我们的计算机上安装 Docker。
步骤 2 - 通过使用以下命令,您可以拉取 MXNet docker 镜像 -
$ docker pull mxnet/python
现在为了查看 mxnet/python docker 镜像拉取是否成功,我们可以列出 docker 镜像,如下所示:
$ docker images
为了通过 MXNet 获得最快的推理速度,建议使用带有 Intel MKL-DNN 的最新 MXNet。检查下面的命令 -
$ docker pull mxnet/python:1.3.0_cpu_mkl $ docker images
从源头
按照下面给出的步骤在 OS X (Mac) 上从源代码安装 MXNet -
步骤 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
我们也可以在没有 OpenCV 的情况下构建 MXNet,因为 opencv 是一个可选依赖项。
步骤 2 - 在此步骤中,我们将下载 MXNet 源并进行配置。首先,让我们使用以下命令克隆存储库 -
git clone –-recursive https://github.com/apache/incubator-mxnet.git mxnet cd mxnet cp config/linux.cmake config.cmake
步骤 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 核心共享库后,在MXNet 项目根目录的构建文件夹中,您将找到libmxnet.dylib,这是安装语言绑定所需的(可选)。
Windows操作系统
要在 Windows 上安装 MXNet,以下是先决条件 -
最低系统要求
Windows 7、10、服务器 2012 R2 或服务器 2016
Visual Studio 2015 或 2017(任何类型)
Python 2.7 或 3.6
点
推荐系统要求
Windows 10、服务器 2012 R2 或服务器 2016
视觉工作室 2017
至少一个支持 NVIDIA CUDA 的 GPU
支持 MKL 的 CPU:英特尔® 至强® 处理器、英特尔® 酷睿™ 处理器系列、英特尔® 凌动® 处理器或英特尔® 至强融核™ 处理器
Python 2.7 或 3.6
点
图形处理单元 (GPU)
通过使用 Pip 方法−
如果您计划使用 NVIDIA GPU 在 Windows 上构建 MXNet,有两种选择可以使用 Python 包安装具有 CUDA 支持的 MXNet:
安装 CUDA 支持
以下是我们可以使用 CUDA 设置 MXNet 的步骤。
步骤 1 - 首先安装 Microsoft Visual Studio 2017 或 Microsoft Visual Studio 2015。
步骤 2 - 接下来,下载并安装 NVIDIA CUDA。建议使用 CUDA 版本 9.2 或 9.0,因为过去已发现 CUDA 9.1 的一些问题。
步骤 3 - 现在,下载并安装 NVIDIA_CUDA_DNN。
步骤 4 - 最后,通过使用以下 pip 命令,安装带有 CUDA 的 MXNet -
pip install mxnet-cu92
安装 CUDA 和 MKL 支持
以下是我们可以使用 CUDA 和 MKL 设置 MXNet 的步骤。
步骤 1 - 首先安装 Microsoft Visual Studio 2017 或 Microsoft Visual Studio 2015。
步骤 2 - 接下来,下载并安装 intel MKL
步骤 3 - 现在,下载并安装 NVIDIA CUDA。
步骤 4 - 现在,下载并安装 NVIDIA_CUDA_DNN。
步骤 5 - 最后,通过使用以下 pip 命令,使用 MKL 安装 MXNet。
pip install mxnet-cu92mkl
从源头
要使用 GPU 从源代码构建 MXNet 核心库,我们有以下两个选项 -
选项 1− 使用 Microsoft Visual Studio 2017 构建
为了使用 Microsoft Visual Studio 2017 自行构建和安装 MXNet,您需要以下依赖项。
安装/更新 Microsoft Visual Studio。
如果您的计算机上尚未安装 Microsoft Visual Studio,请首先下载并安装它。
它会提示安装 Git。也安装一下吧。
如果您的计算机上已安装 Microsoft Visual Studio,但您想要更新它,请继续执行下一步以修改您的安装。在这里您还将有机会更新 Microsoft Visual Studio。
按照打开https://docs.microsoft.com/en-us上提供的 Visual Studio 安装程序的说明来修改各个组件。
在 Visual Studio 安装程序应用程序中,根据需要进行更新。之后查找并选中VC++ 2017 版本 15.4 v14.11 工具集,然后单击修改。
现在使用以下命令,将 Microsoft VS2017 的版本更改为 v14.11−
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" -vcvars_ver=14.11
接下来,您需要在https://cmake.org/download/下载并安装CMake。建议使用https://cmake.org/download/上提供的CMake v3.12.2,因为它是使用 MXNet 进行测试的。
现在,下载并运行https://sourceforge.net/projects/opencvlibrary/上提供的OpenCV包,这将解压缩多个文件。是否要将它们放在另一个目录中取决于您。在这里,我们将使用路径C:\utils(mkdir C:\utils)作为默认路径。
接下来,我们需要设置环境变量 OpenCV_DIR 以指向我们刚刚解压的 OpenCV 构建目录。对于此打开命令提示符并输入set OpenCV_DIR=C:\utils\opencv\build。
重要的一点是,如果您没有安装英特尔 MKL(数学内核库),您可以安装它。
您可以使用的另一个开源包是OpenBLAS。为了获得进一步的说明,我们假设您正在使用OpenBLAS。
因此,下载https://sourceforge.net上提供的OpenBlas软件包并解压缩该文件,将其重命名为OpenBLAS并将其放在C:\utils下。
接下来,我们需要设置环境变量OpenBLAS_HOME以指向包含include和lib目录的 OpenBLAS 目录。对于此打开命令提示符并输入set OpenBLAS_HOME=C:\utils\OpenBLAS。
现在,下载并安装https://developer.nvidia.com上提供的 CUDA 。请注意,如果您已经有 CUDA,然后安装了 Microsoft VS2017,则现在需要重新安装 CUDA,以便获得用于 Microsoft VS2017 集成的 CUDA 工具包组件。
接下来,您需要下载并安装 cuDNN。
接下来,您还需要下载并安装 git,地址为https://gitforwindows.org/。
安装完所有必需的依赖项后,请按照下面给出的步骤构建 MXNet 源代码 -
步骤 1 - 在 Windows 中打开命令提示符。
步骤 2 - 现在,通过使用以下命令,从 GitHub 下载 MXNet 源代码:
cd C:\ git clone https://github.com/apache/incubator-mxnet.git --recursive
步骤 3 - 接下来,验证以下内容 -
DCUDNN_INCLUDE 和 DCUDNN_LIBRARY环境变量指向CUDA 安装位置的include文件夹和cudnn.lib文件
C:\incubator-mxnet是您在上一步中刚刚克隆的源代码的位置。
步骤 4 - 接下来使用以下命令创建一个构建目录并转到该目录,例如 -
mkdir C:\incubator-mxnet\build cd C:\incubator-mxnet\build
步骤 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"
步骤 6 - CMake 成功完成后,使用以下命令编译 MXNet 源代码 -
msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount
选项 2:使用 Microsoft Visual Studio 2015 进行构建
为了使用 Microsoft Visual Studio 2015 自行构建和安装 MXNet,您需要以下依赖项。
安装/更新 Microsoft Visual Studio 2015。从源代码构建 MXnet 的最低要求是 Microsoft Visual Studio 2015 的 Update 3。您可以使用工具 -> 扩展和更新... | 产品更新菜单可对其进行升级。
接下来,您需要下载并安装CMake ,可从https://cmake.org/download/获取。建议使用CMake v3.12.2(位于https://cmake.org/download/),因为它是使用 MXNet 进行测试的。
现在,下载并运行https://excellmedia.dl.sourceforge.net上提供的 OpenCV 包,这将解压缩多个文件。是否要将它们放在另一个目录中取决于您。
接下来,我们需要设置环境变量OpenCV_DIR以指向我们刚刚解压的OpenCV构建目录。为此,打开命令提示符并输入 set OpenCV_DIR=C:\opencv\build\x64\vc14\bin。
重要的一点是,如果您没有安装英特尔 MKL(数学内核库),您可以安装它。
您可以使用的另一个开源包是OpenBLAS。为了获得进一步的说明,我们假设您正在使用OpenBLAS。
因此,下载https://excellmedia.dl.sourceforge.net上提供的OpenBLAS软件包并解压缩该文件,将其重命名为 OpenBLAS 并将其放在 C:\utils 下。
接下来,我们需要设置环境变量 OpenBLAS_HOME 以指向包含 include 和 lib 目录的 OpenBLAS 目录。您可以在C:\Program files (x86)\OpenBLAS\中找到该目录
请注意,如果您已经有 CUDA,然后安装了 Microsoft VS2015,则需要立即重新安装 CUDA,以便获得用于 Microsoft VS2017 集成的 CUDA 工具包组件。
接下来,您需要下载并安装 cuDNN。
现在,我们需要设置环境变量 CUDACXX 指向CUDA 编译器(例如 C:\Program Files\NVIDIA GPU Compute Toolkit\CUDA\v9.1\bin\nvcc.exe)。
同样,我们还需要设置环境变量CUDNN_ROOT指向包含include、lib和bin目录的cuDNN目录(例如C:\Downloads\cudnn-9.1-windows7-x64-v7\cuda )。
安装完所有必需的依赖项后,请按照下面给出的步骤构建 MXNet 源代码 -
步骤 1 - 首先,从 GitHub 下载 MXNet 源代码 -
cd C:\ git clone https://github.com/apache/incubator-mxnet.git --recursive
步骤 2 - 接下来,使用 CMake 在 ./build 中创建 Visual Studio。
步骤 3 - 现在,在 Visual Studio 中,我们需要打开解决方案文件.sln并编译它。这些命令将在./build/Release/ 或 ./build/Debug文件夹中生成一个名为mxnet.dll的库
步骤 4 - CMake 成功完成后,使用以下命令编译 MXNet 源代码
msbuild mxnet.sln /p:Configuration=Release;Platform=x64 /maxcpucount
中央处理器(CPU)
在这里,当我们使用 CPU 进行处理时,我们将使用各种方法,即 Pip、Docker 和 Source 来安装 MXNet -
通过使用点值法
如果您计划使用 CPU 在 Windows 上构建 MXNet,则有两种使用 Python 包安装 MXNet 的选项 -
与CPU一起安装
使用以下命令通过 Python 安装带有 CPU 的 MXNet -
pip install mxnet
安装 Intel CPU
如上所述,MXNet 对 Intel MKL 和 MKL-DNN 提供实验性支持。使用以下命令通过 Python 安装带有 Intel CPU 的 MXNet -
pip install mxnet-mkl
通过使用 Docker
您可以在DockerHub找到带有 MXNet 的 docker 镜像,网址为https://hub.docker.com/u/mxnet让我们看看下面的步骤,通过使用带有 CPU 的 Docker 来安装 MXNet:
步骤 1 - 首先,按照 docker 安装说明进行操作,可以在https://docs.docker.com/docker-for-mac/install阅读。我们需要在我们的机器上安装 Docker。
步骤 2 - 通过使用以下命令,您可以拉取 MXNet docker 镜像 -
$ docker pull mxnet/python
现在为了查看 mxnet/python docker 镜像拉取是否成功,我们可以列出 docker 镜像,如下所示:
$ docker images
为了通过 MXNet 获得最快的推理速度,建议使用带有 Intel MKL-DNN 的最新 MXNet。
检查下面的命令 -
$ docker pull mxnet/python:1.3.0_cpu_mkl $ docker images
在云和设备上安装 MXNet
本节重点介绍如何在云和设备上安装 Apache MXNet。让我们首先了解如何在云上安装 MXNet。
在云上安装 MXNet
您还可以在多个具有图形处理单元 (GPU)支持的云提供商上获取 Apache MXNet 。您可以找到的另外两种支持如下:
- GPU/CPU 混合支持可扩展推理等用例。
- AWS Elastic Inference 的阶乘 GPU 支持。
以下是为 Apache MXNet 提供不同虚拟机的 GPU 支持的云提供商:
阿里巴巴控制台
您可以使用阿里巴巴控制台创建https://docs.nvidia.com/ngc上提供的NVIDIA GPU 云虚拟机 (VM)并使用 Apache MXNet。
亚马逊网络服务
它还提供 GPU 支持并为 Apache MXNet 提供以下服务:
亚马逊 SageMaker
它管理 Apache MXNet 模型的训练和部署。
AWS 深度学习 AMI
它为 Python 2 和 Python 3 提供预安装的 Conda 环境,包括 Apache MXNet、CUDA、cuDNN、MKL-DNN 和 AWS Elastic Inference。
AWS 上的动态训练
它提供实验性手动 EC2 设置以及半自动 CloudFormation 设置的培训。
您可以将https://aws.amazon.com上提供的NVIDIA VM与 Amazon Web 服务结合使用。
谷歌云平台
Google 还提供NVIDIA GPU 云映像,可在https://console.cloud.google.com上使用该映像来与 Apache MXNet 配合使用。
微软Azure
Microsoft Azure Marketplace 还在https://azuremarketplace.microsoft.com上提供了NVIDIA GPU 云映像,以便与 Apache MXNet 配合使用。
甲骨文云
Oracle 还在https://docs.cloud.oracle.com上提供了NVIDIA GPU 云映像,以便与 Apache MXNet 配合使用。
中央处理器(CPU)
Apache MXNet 适用于每个云提供商的纯 CPU 实例。有多种安装方法,例如:
Python pip 安装说明。
Docker 指令。
预装选项,如 Amazon Web Services,它提供 AWS Deep Learning AMI(预装了适用于 Python 2 和 Python 3 的 Conda 环境以及 MXNet 和 MKL-DNN)。
在设备上安装 MXNet
让我们学习如何在设备上安装 MXNet。
树莓派
您还可以在 Raspberry Pi 3B 设备上运行 Apache MXNet,因为 MXNet 还支持基于 Respbian ARM 的操作系统。为了在 Raspberry Pi3 上顺利运行 MXNet,建议设备具有 1 GB 以上 RAM 和至少 4 GB 可用空间的 SD 卡。
以下是您可以为 Raspberry Pi 构建 MXNet 并为库安装 Python 绑定的方法 -
快速安装
预构建的 Python 轮可在带有 Stretch 的 Raspberry Pi 3B 上使用,以便快速安装。此方法的重要问题之一是,我们需要安装多个依赖项才能使 Apache MXNet 正常工作。
Docker安装
您可以按照https://docs.docker.com/engine/install/ubuntu/上的 docker 安装说明在您的计算机上安装 Docker。为此,我们还可以安装和使用社区版(CE)。
本机构建(来自源代码)
为了从源代码安装 MXNet,我们需要遵循以下两个步骤:
步骤1
从 Apache MXNet C++ 源代码构建共享库
要在 Raspberry 版本 Wheezy 及更高版本上构建共享库,我们需要以下依赖项:
Git - 需要从 GitHub 提取代码。
Libblas - 线性代数运算所需。
Libopencv - 计算机视觉相关操作所需。但是,如果您想节省 RAM 和磁盘空间,则可以选择此选项。
C++ 编译器- 需要编译和构建 MXNet 源代码。以下是支持 C++ 11 的编译器:
G++(4.8或更高版本)
铿锵(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步
安装 Apache MXNet 支持的特定语言包
在此步骤中,我们将安装 MXNet Pythin 绑定。为此,我们需要在 MXNet 目录中运行以下命令 -
cd python pip install --upgrade pip pip install -e .
或者,使用以下命令,您还可以创建可使用pip安装的whl 包-
ci/docker/runtime_functions.sh build_wheel python/ $(realpath build)
NVIDIA Jetson 设备
您还可以在 NVIDIA Jetson 设备(例如TX2或Nano)上运行 Apache MXNet,因为 MXNet 还支持基于 Ubuntu Arch64 的操作系统。为了在 NVIDIA Jetson 设备上顺利运行 MXNet,需要在 Jetson 设备上安装 CUDA。
以下是为 NVIDIA Jetson 设备构建 MXNet 的方法:
使用 Jetson MXNet pip 轮进行 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上。
完成上述先决条件后,您现在可以在 NVIDIA Jetson 设备上安装 MXNet。那么,让我们了解一下安装 MXNet 的方法:
通过使用 Jetson MXNet pip 轮进行 Python 开发- 如果您想使用准备好的 Python 轮,请将以下内容下载到您的 Jetson 并运行它 -
MXNet 1.4.0(适用于Python 3)可在https://docs.docker.com获取
MXNet 1.4.0(适用于Python 2)可在https://docs.docker.com获取
本机构建(来自源代码)
为了从源代码安装 MXNet,我们需要遵循以下两个步骤:
步骤1
从 Apache MXNet C++ 源代码构建共享库
要从 Apache MXNet C++ 源代码构建共享库,您可以使用 Docker 方法或手动执行 -
泊坞窗方法
在这种方法中,您首先需要安装 Docker 并且能够在没有 sudo 的情况下运行它(这也在前面的步骤中进行了解释)。完成后,运行以下命令通过 Docker 执行交叉编译 -
$MXNET_HOME/ci/build.py -p jetson
手动的
在此方法中,您需要编辑Makefile(使用以下命令)来安装带有 CUDA 绑定的 MXNet,以利用 NVIDIA Jetson 设备上的图形处理单元 (GPU):
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)
执行上述命令后,它将开始构建过程,该过程需要几个小时才能完成。您将在mxnet/lib 目录中获得一个名为libmxnet.so的文件。
第2步
安装 Apache MXNet Python 绑定
在此步骤中,我们将安装 MXNet Python 绑定。为此,我们需要在 MXNet 目录中运行以下命令 -
cd $MXNET_HOME/python sudo pip install -e .
完成上述步骤后,您现在就可以在 NVIDIA Jetson 设备 TX2 或 Nano 上运行 MXNet。可以使用以下命令进行验证 -
import mxnet mxnet.__version__
如果一切正常,它将返回版本号。