- 环境: 单server, Ubuntu 16.04
安装并启动Docker实例
安装Docker, 按照官方教程安装:
http://docker.org/获取Ubuntu镜像,这里使用的是mxnet提供的image:
sudo docker pull mxnet/python启动一个Docker instance, 可使用
1
2
3
4
5
6#!/usr/bin/env bash
instance_name=$1 # Name of docker instance
cpus=$2 # Assignment of dedicated CPUs, e.g., 2,3,4,5
docker run -it --cpuset-cpus="$2" -v /home/ubuntu/projects/mxnet-learning/incubator-mxnet:/mxnet-src --name $1 -d mxnet/python bash
这里使用了-v来指定共享目录,是为了直接在物理Host主机上编译mxnet的源码,方便在同一server里的所有Docker instances使用
编译源码
按照官方教程安装依赖库:
https://mxnet.apache.org/install/index.html?platform=Linux&language=Python&processor=CPU1
2
3
4sudo apt update
sudo apt install -y build-essential git
sudo apt install -y libopenblas-dev liblapack-dev
sudo apt install -y libopencv-dev下载源码:
git clone --recursive https://github.com/apache/incubator-mxnet- 开始编译
1
2cd incubator-mxnet
make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_DIST_KVSTORE=1
添加了USE_DIST_KVSTORE=1,因为后续会使用分布式的训练。编译需要等待一段时间
Python绑定
进入Docker instance。以name为
mxnet-main实例为例1
sudo docker exec -it mxnet-main /bin/bash
安装python依赖
1
sudo apt-get install -y python-dev python-setuptools python-pip libgfortran3
进入mxnet-src (docker run时设置的共享目录名称),并安装
1
2
3
4cd cd /usr/local/lib/python2.7/dist-packages # 建议进入python lib目录里把原有的mxnet给删除
rm -rf mxnet
cd /mxnet-src/python
pip install -e .
验证
- 验证版本,从docker hub上pull的镜像自带mxnet环境,其版本号为1.2.1 (截止到2018-8-22 21:42), 通过安装github上clone的源码,其版本号为1.3.0


- 安装完整性验证,以
image-classification为例1
2cd /mxnet-src/example/image-classification
python train_mnist.py
