MxNet系列——get_started——setup

Posted xuezhisdc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MxNet系列——get_started——setup相关的知识,希望对你有一定的参考价值。

博客新址: http://blog.xuezhisd.top
邮箱:xuezhisd@126.com


综述

你可以在Amazon Linux, Ubuntu/Debian, OS X, 和 Windows等操作系统上运行MXNet。MXNet 也可以在 Docker 和类似于AWS的云上运行。MXNet现在支持的语言包括:Python, R, Julia 和 Scala等。

配置MXNet的详细指南:

本节也包含了以下内容:

如果你遇到关于安装MXNet的问题,并且无法在 常见的安装问题 上找到解决方法,请在 mxnet/issues 提交问题。如果你已经解决了问题,请发送一个pull请求。更多信息,请查看 contribution guidelines

依赖环境

本节列出了执行MXNet的最基本的依赖,使用GPU的依赖,和支持计算机视觉和图像增强的依赖。

注意: 配置所有的基本依赖(仅CPU)在各个操作系统安装MXNet的指南中描述。本节内容是针对于那些想配置可选依赖(GPU/MKL等)的高级用户。

最小依赖环境

必须安装下面的工具:

  • 一个支持C++ 11 的C++编译器。C++编译器用于编译和构建MXNet的源代码。支持的编译器有:

  • 一个线性代数计算库 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。

  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
  1. 运行下面的代码,下载和解压 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
  1. 运行下面的代码,构建 GCC:
mkdir release && cd release
../configure --prefix=/usr/local --enable-languages=c,c++
make -j10
sudo make install
  1. 将 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。

下一步

以上是关于MxNet系列——get_started——setup的主要内容,如果未能解决你的问题,请参考以下文章

MxNet系列——get_started——osx_setup

MXNet 定义新激活函数(Custom new activation function)

MxNet系列——community——index

MxNet系列——community——contribute

业界 | 五大主流深度学习框架比较分析:MXNET是最好选择

Amazon宣布将MXNet作为AWS的深度学习框架