概述

你可以在 Amazon Linux, Ubuntu/Debian, OS X, and Windows 操作系统上运行 MXNet,同时 Docker 和云服务(比如AWS)也可以运行。MXNet目前支持 Python, R, Julia 和 Scala 编程语言

配置 MXNet 详细教程:

本文还包含如下:

如果你在安装中碰到问题,并在在常见安装问题中找不到解决办法,可以在 mxnet/issues 发起提问.如果你可以解决这个问题,可以发起 pull request。细节可以参考 contribution guidelines.

设备要求

这里列出了运行 MXNet 的基本要求、在 GPU 上运行的要求、计算机视觉和图像增强的要求。

注意: 配置所有基本(仅 CPU)要求在各自的操作系统安装指南中已经说明。这里只提供给配置交替依赖(alternate dependencies)(GPU/Intel MKL 等等..)和实验的高级用户.

最低要求

你必须具备如下条件:

  • 一个支持 C++ 11 的编译器。此编译器用来编译 MXNet 的源码。支持的编译器如下:

  • 一个 BLAS (Basic Linear Algebra Subprograms) 库。BLAS 库包含了处理向量和矩阵运算的标准编译模块。你需要 BLAS 库来处理线性代数运算。支持的 BLAS 库包含如下:

  • Graphviz 用来查看图像.

  • Jupyter Notebook 用来运行例子和教程.

使用 GPU 的要求

  • 一个计算能力(Compute Capability)2.0及以上的 GPU。计算能力(Compute Capability)是 CUDA 硬件的特性。每种计算能力的详细特性可以参考列表 CUDA Version features and specifications。 NVIDIA GPU 支持的特性,可以参考列表:CUDA GPUs.
  • CUDA工具包 7.0 及以上。CUDA 工具包是一个可以让 MXNet 运行在 NVIDIA GPU 上的环境,它包含了一个编译器,一个数学库和一个调试工具。参考 CUDA Toolkit download page 下载最新版。
  • CuDNN (CUDA Deep Neural Network) 库。CuDNN 库提供调节底层GPU性能的方法,用来调节 GPU 的计算能力。参考 CUDA Deep Neural Network 下载最新版。

计算机视觉和图像增强的要求

如果你需要支持计算机视觉和图像增强,需要安装 OpenCV.Open Source Computer Vision (OpenCV)库提供了计算机视觉和图像增强所需要的功能,详细介绍参考 OpenCV.

编译依赖库

这里介绍如何从源码编译 MXNet 的依赖库。这个方法在两种特殊环境中很有用:

  • 如果你的服务器正在使用较早版本的 Linux,依赖的包已经找不到,或者 Yum apt-get 不能安装新版本。

  • 如果你没有 root 权限来安装依赖包。你需要把安装目录从 /usr/local 移动到有权限的目录下。下面的例子是使用 ${HOME} 目录。

从源码编译 GCC

你需要 32-bit libc 库,来编译 GNU Complier Collection (GCC)。

  1. 根据操作系统选择一条命令来安装 libc:

    		sudo apt-get install libc6-dev-i386 # In Ubuntu
    		sudo yum install glibc-devel.i686   # In RHEL (Red Hat Linux)
    		sudo yum install glibc-devel.i386   # In CentOS 5.8
    		sudo yum install glibc-devel.i686   # In CentOS 6/7
    
  2. 通过下面的命令下载 GCC 源码:

    		wget http://mirrors.concertpass.com/gcc/releases/gcc-4.8.5/gcc-4.8.5.tar.gz
    		tar -zxf gcc-4.8.5.tar.gz
    		cd gcc-4.8.5
    		./contrib/download_prerequisites
    
  3. 通过下面命令编译 GCC:

    		mkdir release && cd release
    		../configure --prefix=/usr/local --enable-languages=c,c++
    		make -j10
    		sudo make install
    
  4. 将库路径添加到 ~/.bashrc:

    		export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib64
    

编译 OpenCV

你需要 cmake库来编译 OpenCV。

  • 如果你没有 cmake 或者 cmake 版本早于 3.6.1(比如 RHEL 默认的 cmake 版本),通过下面的命令来安装新版 cmake:

    		wget https://cmake.org/files/v3.6/cmake-3.6.1-Linux-x86_64.tar.gz
    		tar -zxvf cmake-3.6.1-Linux-x86_64.tar.gz
    		alias cmake="cmake-3.6.1-Linux-x86_64/bin/cmake"
    
  • 通过下面命令下载 OpenCV 源码:

    		wget https://codeload.github.com/opencv/opencv/zip/2.4.13
    		unzip 2.4.13
    		cd opencv-2.4.13
    		mkdir release
    		cd release/
    
  • 编译 openCV。下面的命令可以编译不支持 GPU 的 openCV,这可能意味着 MXNet 程序在 GPU 上运行会比较慢。它还可能发出警告的 1394 功能

    		cmake -D BUILD_opencv_gpu=OFF -D WITH_CUDA=OFF -D WITH_1394=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    		make -j8
    		sudo make install
    
  • 将库路径添加到 ~/.bashrc:

    		export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
    

常见安装问题

这里介绍常见安装问题的解决办吧

普通

消息: ImportError: No module named _graphviz

原因: Graphviz 未安装.

解决: 在 Mac 上,你可以通过下面命令在安装 Graphviz

  brew install graphviz

或者使用 pip

  brew install python
  pip install graphviz

消息: RuntimeError: failed to execute [‘dot’, ‘-Tsvg’], make sure the Graphviz executables are on your systems' path

原因: Graphviz 的可执行(库)路径不再当前系统的 path 中,程序无法使用 Graphviz 绘制图像

解决: 将 Graphviz 可执行(库)路径添加到系统 path 中。在 Mac/Linux 上,Graphviz 通常安装在 - /usr/local/lib/graphviz/ or /usr/lib/graphviz/ or /usr/lib64/graphviz/ and on Windows - C:\Program Files (x86)\Graphviz2.38\bin.

注意 如果你使用 Jupyter notebook,可能需要重启 kernel 来刷新系统 path。

Mac OS X 错误消息

消息: link error ld: library not found for -lgomp

原因: OpenMP 不在系统库 path 中.

解决: 将 OpenMP 添加的系统库 path 中。:

  • 用下面命令创建定位数据库(locate database):

    		sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
    
  • 用下面命令定位 OpenMP 库:

    		locate libgomp.dylib
    
  • 将 OpenMP 添加到系统库 path 中, 用上一条命令的输出结果替换下面命令中的 path1 :

    		ln -s path1 /usr/local/lib/libgomp.dylib
    
  • 用下面的命令编译你刚刚的修改:

    		make -j$(sysctl -n hw.ncpu)
    

R 错误消息

消息 Unable to load mxnet after enabling CUDA

解决: 如果在安装时你打开了 CUDA 功能,但是不能加载 mxnet。将这些行添加到你的$RHOME/etc/ldpaths 环境变量中:

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}

注意: R 中可以通过 R.home() 命令来查找 $RHOME 环境变量.

下一步