Mxnet是一个轻量化分布式可移植深度学习计算平台,他支持多机多节点、多GPU的计算,其openMP+MPI/SSH+Cuda/Cudnn的框架是的计算速度很快,且能与分布式文件系统结合实现大数据的深度学习。
开源地址:https://github.com/dmlc/mxnet
如下是单节点的具体安装和实验流程,参考于官方文档:http://mxnt.ml/en/latest/build.html#building-on-linux
1、基本依赖的安装
sudo apt-get update
sudo apt-get install -y build-essential git libblas-dev libopencv-dev
2、下载mxnet
git clone --recursive https://github.com/dmlc/mxnet
3、安装CUDA
详见博客:http://blog.csdn.net/a350203223/article/details/50262535
4、编译支持GPU的MXnet
将mxnet/目录里找到mxnet/make/子目录,把该目录下的config.mk复制到mxnet/目录,用文本编辑器打开,找到并修改以下两行:
USE_CUDA = 1
USE_CUDA_PATH = /usr/local/cuda
修改之后,在mxnet/目录下编译
make -j4
5、安装Python支持
cd python;
python setup.py install
有些时候需要安装setuptools和numpy(sudo apt-get install python-numpy)。
6、运行Mnist手写体识别实例
MNIST手写数字识别,数据集包含6万个手写数字的训练数据集以及1万个测试数据集,每个图片是28x28的灰度图。在mxnet/example/image-classification里可以找到MXnet自带MNIST的识别样例,我们可以先运行一下试试:
cd mxnet/example/image-classification
python train_mnist.py
在第一次运行的时候会自动下载MNIST数据集。
以上的命令是使用默认的参数运行,即使用mlp网络,在cpu上计算。
如果使用lenet网络,在GPU上实现加速,则使用如下命令:
python train_mnist.py --gpus 0 --network lenet
运行结果: