zoukankan      html  css  js  c++  java
  • MXNet 分布式环境部署

    MXNet 分布式环境部署

    1. MxNet 分布式介绍

    先忽略吧, 回头在填上去

    2. 分布式部署方法

    假设有两台主机ip地址分别是 xxx.xxx.xxx.114xxx.xxx.xxx.111
    这两台主机的环境如下

    ubuntu Server 16.04SLT
    python3.6| anaconda3
    opencv3
    cuda8
    cudnn7
    

    2.2 Step1. 搭建MxNet环境

    根据文献[^Installing MXNet]以源代码的方式安装MxNet; 注意每台机器生配置的环境需要保持一致;
    需要分别在114 和111主机上搭建MxNet环境
    MxNet的安装方法有很多,免密码登录只是其中的一种方式. 建议使用源代码的方式去安装, 因为后面需要使用MxMet的源代码里面的文件.

    #进入anaconda虚拟环境
    source activate base # root 
    
    # 下载MxNet1.2.1 源代码
    wget https://github.com/apache/incubator-mxnet/releases/download/1.2.1/apache-mxnet-src-1.2.1-incubating.tar.gz 
    
    # 解压源代码到目录 ~/source/下面
    tar -zvxf apache-mxnet-src-1.2.1-incubating.tar.gz -d ~/source/
    # 进入source目录,并编译
    cd ~/source/apache-mxnet-src-1.2.1-incubating
    # 编译参数解析 
    # USE_OPENCV=1 代表使用opencv
    # USE_CUDA_PATH=/usr/local/cuda 是指定使用的cuda路径
    #USE_CUDNN=1是使用cudann
    make -j $(nproc) USE_OPENCV=1 USE_BLAS=openblas USE_CUDA=1 USE_CUDA_PATH=/usr/local/cuda USE_CUDNN=1
    
    # 进入源文件的python目录, 编译python接口的MxNet
    cd ~/source/apache-mxnet-src-1.2.1-incubating
    python setup.py install
    

    等待安装好以后,进如python终端,测试是否可以识别mxnet即可:

    import mxnet
    print(mxnet.__version__) # 应该可以输出版本 1.2.1
    

    好, 到此为止,MxNet安装完毕;

    2.1 Step2. 设置SSH免密码登录

    在网上找到一片很靠谱的博客,参考这篇文章即可,不再赘述.
    ubuntu开启SSH服务远程登录

    2.3 Step3. 搭建分布式的环境

    解析:
    两台主机免密码互联是分布式之间数据传递的前提,再搭建分布式之前,一定要确保第2步没有问题;
    mxNet的分布式运行比较简单,在tools文件夹中的launcher.py是管理分布式下运行的文件的,直接在哪运行该文件的时候添加相应的参数即可;
    在安装好MxNet和设置好ssh免密码登录以后就可以使用了, 基本上不需要添加任何设置.
    为了说明运行参数,同时为了测试分布式环境,我们将在分布式下运行apache-mxnet-src-1.2.1-incubating/examples/image-classification/train_mnist.py

    进入源代码的目录下的tools文件夹, 找到launcher.py文件

    cd ~/source/apache-mxnet-src-1.2.1-incubating/tools 
    

    在此处建立文件名host文件, 并在该文件中输入两台主机的ip地址;

    xxx.xx.xxx.111
    aaa.aa.aaa.114
    

    ps: 这个名字host可以随意的起的,是为了在运行lanucher的时候让服务器知道在哪里进行分布式运行

    运行launch.py

    MxNet官方文档中有详细介绍MxNet分布式的使用方式,可以查看官方文档的详细内容[1]

    python launch.py -n 2 -H host --launcher ssh `which python` ../example/image-classification/train_mnist.py
    # --n 是代表要启动几台host
    # -H 是要指定host的ip地址
    

    如果不出任何错误,且train_mnist.py运行成功表明环境搭建成功了.

    参考文献

    [^Installing MXNet]: Installing MXNet


    1. distributed_training ↩︎

  • 相关阅读:
    复利计算(1)
    对IT行业的一些思考
    递归下降语义分析
    1118 实验三 有限自动机的构造与识别
    冒泡排序文法评论
    实验0:了解和熟悉操作系统
    0302思考IT行业的感想
    递归下降语义分析
    对文法解释和语法树的评论
    语言文法
  • 原文地址:https://www.cnblogs.com/greentomlee/p/9611064.html
Copyright © 2011-2022 走看看