你可以在 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 用来运行例子和教程.
如果你需要支持计算机视觉和图像增强,需要安装 OpenCV.Open Source Computer Vision (OpenCV)库提供了计算机视觉和图像增强所需要的功能,详细介绍参考 OpenCV.
这里介绍如何从源码编译 MXNet 的依赖库。这个方法在两种特殊环境中很有用:
如果你的服务器正在使用较早版本的 Linux,依赖的包已经找不到,或者 Yum apt-get 不能安装新版本。
如果你没有 root 权限来安装依赖包。你需要把安装目录从 /usr/local 移动到有权限的目录下。下面的例子是使用 ${HOME} 目录。
你需要 32-bit libc 库,来编译 GNU Complier Collection (GCC)。
根据操作系统选择一条命令来安装 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
通过下面的命令下载 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
通过下面命令编译 GCC:
mkdir release && cd release ../configure --prefix=/usr/local --enable-languages=c,c++ make -j10 sudo make install
将库路径添加到 ~/.bashrc:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib64
你需要 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。
消息: 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)
消息 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 环境变量.