mxnet 是深度学习领域的主流框架之一,是 Amazon 的 AWS 默认的深度学习引擎,本文详细描述了在 ubuntu16.04 系统安装 mxnet 的步骤。
1. 安装 ubuntu16.04;
默认设置即可。
2. 安装 CUDA;
安装CUDA9.0。
可参考“手把手教你装 CUDA(Ubuntu14.04)”,文章描述了在 ubuntu14.04 上安装 CUDA7.0 的步骤。
3. 安装 cuDNN;
cuDNN 要和 CUDA 的版本匹配,我们来安装 cudnn-9.0-linux-x64-v7 版本。
将 cudnn-9.0-linux-x64-v7.tgz 拷贝到相关目录下。
$ tar cudnn-9.0-linux-x64-v7.tgz
$ cd cuda
$ cd include
$ sudo cp cudnn.h /usr/local/include/.
将头文件拷贝到系统头文件目录下。
$ cd ../lib64
$ sudo cp libcudnn.so.7.0.5 /usr/local/lib/.
$ sudo cp libcudnn_static.a /usr/local/lib/.
将库文件拷贝到系统库文件目录下。
$ cd /usr/local/lib
$ sudo ln –s libcudnn.so.7.0.5 libcudnn.so.7
$ sudo ln –s libcudnn.so.7 libcudnn.so
进入系统库文件目录,重新设定软链接。
$ sudo ldconfig
4. 安装依赖软件;
$ sudo apt-get instll git
$ sudo apt-get install build-essential
$ sudo apt-get install libatlas-base-dev
$ sudo apt-get install libopencv-dev
$ sudo apt-get install graphviz
$ sudo apt-get install python-numpy
$ sudo apt-get install python-setuptools
$ sudo apt-get install python-pip
5. pip安装依赖软件;
$ sudo pip install graphviz
$ sudo pip install jupyter
$ sudo pip install sklearn
$ sudo pip install scipy
$ sudo pip install opencv-python
$ sudo pip install scikit-image
$ sudo pip install easydict
6. 安装 mxnet;
在用户的家目录下新建目录 mxnet_install,进入该目录,克隆下载 mxnet。
$ cd ~/mxnet_install
$ git clone https://github.com/dmlc/mxnet.git --recursive
成功执行后,该目录下有 mxnet 目录。
$ cd mxnet
$ cp make/config.mk .
编辑 config.mk 文件内容,第 70 行开始,设定 USE_CUDA、USE_CUDA_PATH 和 USE_CUDNN 三项的内容。
$ vi config.mk
USE_CUDA = 1
USE_CUDA_PATH = /usr/local/cuda
USE_CUDNN = 1
然后我们可以来编译了,make 后面是可以跟参数的。我们的机器上装了 2 个 E5-2630 v4 的 CPU,有 20 核,所以我们的编译命令是:
$ make –j20
$ cd python
$ sudo python setup.py install
成功安装mxnet 1.3.0
7. 运行准备;
运行时需要调用 CUDA 的库,我们在 /etc/ld.so.conf.d 目录下新建 mxnet.conf 文件,将所需要用到的库的目录写入。
$ sudo vi /etc/ld.so.conf.d/mxnet.conf
增加内容
/usr/local/cuda/lib64
$ sudo ldconfig
8. 运行样例;
我们运行 ~/mxnet_install/mxnet/example/image-classification 目录下的 mnist 样例。
$ cd ~/mxnet_install/mxnet/example/image-classification
$ time python train_mnist.py
1m27s运行结束,每秒处理 23651 个samples。
我们再用 gpu 跑一次,机器上插有 1 片 K80,K80 是双核心卡,如果要使用 1 个 gpu 设备,命令是:
$ time python train_mnist.py --gpus 0
或者
$ time python train_mnist.py --gpus 1
39s 运行结束,每秒处理 40417 个 samples,可以看出 gpu 确有加速效果。
如果要同时使用 2 个 gpu 设备,命令是
$ time python train_mnist.py --gpus 0,1
尊重作者辛勤劳动,转载请注明出处。