mxnet多机分布式配置
将一台机器上的mxnet拷到另外两台机器上
scp -r /home/hzz/mxnet hzz@9.91.21.37:/home/hzz/mxnet
如果已经在自己的环境安装好mxnet或者不想新建一个Python环境,可以忽略下面这几步。
建立新的Python环境
对每台机器,用anacodna的conda建立新的Python环境,在这个环境安装mxnet,
conda create -n mxnet-1.1-modify python=2.7
激活这个环境
source activate mxnet-1.1-modify
如果要解除这个环境,只需
source deactivate
之后查看当前的Python是不是在新的环境下
which python
安装mxnet,搭建分布式
进入mxnet/python,安装mxnet
python setup.py install
设置hosts为三台机器的ip,这里命名为Host,如
9.91.21.46
9.91.21.37
9.91.21.34
在每台机器运行自己的local分布式程序, launch文件在 mxnet/tools/
python launch.py -n 1 --launcher local `which python` /home/hzz/tcd-workspace/imagenet_gai.py --data_url /data/ --train_file ILSVRC2012_img_train.rec --batch_size 256 --num_classes 1000 --val_file ILSVRC2012_img_val.rec --num_layers=50 --network=resnet
每台都成功后,再用分布式
python launch.py -n 3 -H /home/hzz/tcd-workspace/Host --launcher ssh `which python` /home/hzz/tcd-workspace/imagenet_gai.py --data_url /data/ --train_file ILSVRC2012_img_train.rec --batch_size 256 --num_classes 1000 --val_file ILSVRC2012_img_val.rec --num_layers=50 --network=resnet
踩坑
在conda create创建环境时,报错post-link,更新conda为最新版即可
conda upgrade conda
从一台机器拷贝数据到其他机器上,报权限问题,目标机器拷贝的文件夹也需要权限
sudo chmod 777 /data
OSError: libmxnet.so: cannot open shared object file: No such file or direct
把.so文件放到LD_LIBRARY_PATH环境下,如:vi ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME:$CUDA_HOME/lib64
最后
source ~/.bashrc