地平线机器人——嵌入式人工智能领导者 长期招聘计算机视觉/深度学习等方向的工程师或实习生。感兴趣的话,请发送邮件,可以内推。
综述
你可以在Amazon Linux, Ubuntu/Debian, OS X, 和 Windows等操作系统上运行MXNet。MXNet 也可以在 Docker 和类似于AWS的云上运行。MXNet现在支持的语言包括:Python, R, Julia 和 Scala等。
配置MXNet的详细指南:
- 使用 Docker 安装 MXNet
- 云 (AWS AMI) 上安装MXNet
- Ubuntu 上安装 MXNet
- Amazon Linux上安装 MXNet
- OS X (Mac) 上安装 MXNet
- Windows 上安装 MXNet
本节也包含了以下内容:
- 使用 MXNet 的依赖环境
- 常见的安装问题
- 从源代码构建依赖库
如果你遇到关于安装MXNet的问题,并且无法在 常见的安装问题 上找到解决方法,请在 mxnet/issues 提交问题。如果你已经解决了问题,请发送一个pull请求。更多信息,请查看 contribution guidelines。
依赖环境
本节列出了执行MXNet的最基本的依赖,使用GPU的依赖,和支持计算机视觉和图像增强的依赖。
注意: 配置所有的基本依赖(仅CPU)在各个操作系统安装MXNet的指南中描述。本节内容是针对于那些想配置可选依赖(GPU/MKL等)的高级用户。
最小依赖环境
必须安装下面的工具:
一个支持C++ 11 的C++编译器。C++编译器用于编译和构建MXNet的源代码。支持的编译器有:
-
扫描二维码关注公众号,回复: 3147220 查看本文章
-
一个线性代数计算库 BLAS (Basic Linear Algebra Subprograms)。BLAS库包含了关于向量和矩阵操作的函数,用于执行基本的线性代数操作。支持的BLAS库有:
Graphviz 用于可视化神经网络。
- Jupyter Notebook 用于运行MXNet的例程和教程。
使用GPU的依赖环境
- 一个计算能力(Compute capability)大于 2.0 的英伟达显卡。计算能力描述了CUDA硬件支持哪种特性。关于每种计算能力支持特性的列表,请查看 CUDA Version features and specifications。关于NVIDIA显卡支持特性的列表,请查看 CUDA GPUs。
- CUDA 7.0 或更高版本。CUDA是一种允许MXNet在NVIDIA显卡上运行的环境。它包括编译器,数学函数库,调试工具。下载最新版本,请访问
CUDA 下载页面。 - CuDNN (CUDA Deep Neural Network)。通过提供低级(硬件级)GPU性能调节,来加速GPU计算。下载最新版本,请访问 CUDA Deep Neural Network.
使用计算机视觉和图像增强的依赖环境
如果你洗完支持计算机视觉和图像增强,你需要安装
OpenCV。开源计算机视觉库 (OpenCV) 包含了有关计算机视觉和图像增强方面的大量函数。更多信息,请查看 OpenCV。
从源代码构建依赖库
这一节介绍了如何从源代码构建MXNet的依赖库。这种方法对于以下2种情形很有用:
Linux版本太老。所需的包要么没有最新版库,要么Yum或apt-get不安装最新版的依赖库。
没有权限。这时,你需要改变安装目录,将其从 /usr/local 修改成一个你有权限的目录(比如,用户目录),下面的例子使用当前用户的主目录 ${HOME}。
从源码构建GCC
从源码构建 GNU Complier Collection (GCC),需要 32-bit libc。
- 使用下面的(和操作系统对应的)命令安装 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
- 将 lib 路径添加到 ~/.bashrc 文件中:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib64
从源码构建OpenCV
从源代码构建OpenCV,需要使用cmake
库。
- 如果你没有安装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,这可能让运行在GPU上的MXNet的速度降低很多。下面的命令也禁止了 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
- 将 lib 目录添加到
~/.bashrc
文件:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig/
常见的安装问题
本节给出了常见的安装问题的解决方法。
一般问题
信息: ImportError: No module named _graphviz
原因: Graphviz is not installed.
解决方法:
在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的可执行文件所在的目录放到系统路径中,程序不能使用Graphviz 来绘制网络图。
解决方法: 将Graphviz的可执行文件所在的目录放到系统路径中。
在Mac/Linux中,Graphviz安装在 - /usr/local/lib/graphviz/
或 /usr/lib/graphviz/
或 /usr/lib64/graphviz/
;在Windows上,Graphviz安装在 - C:\Program Files (x86)\Graphviz2.38\bin
。
注意: 如果你正在使用 Jupyter notebook,你可能需要重启kernel,以刷新系统目录和找到Graphviz可执行文件。
Mac OS X 错误
信息: link error ld: library not found for -lgomp
原因: OpenMP的GNU实现,没有在系统库路径中。
解决方法: 将 OpenMP的位置 添加到 库路径:
- 运行下面的命令,创建 locate 数据库:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
- 运行下面的命令,查找 OpenMP库的位置:
locate libgomp.dylib
- 将OpenMP的位置添加到 库路径。注意将下面命令中的
path1
替换成上一个命令的输出:
ln -s path1 /usr/local/lib/libgomp.dylib
- 运行下面的命令,构建:
make -j$(sysctl -n hw.ncpu)
R 错误
信息: Unable to load mxnet after enabling CUDA
解决方法: 如果你安装MXNet时打开了CUDA,但不能加载。将下面的2行添加到你的环境变量 $RHOME/etc/ldpaths
:
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=${CUDA_HOME}/lib64:${LD_LIBRARY_PATH}
注意: 在命令行中使用命令 R.home()
,可以查看环境变量 $RHOME。