• DMLC深度机器学习框架MXNet的编译安装


      这篇文章将介绍MXNet的编译安装。

      MXNet的编译安装分为两步:

      1. 首先,从C++源码编译共享库(libmxnet.so for linux,libmxnet.dylib for osx,libmxnet.dll for windows)。
      2. 接着,安装语言包。

    1. 构建共享库依赖

      目标是构建共享库文件。

    最小构建需求:

    • 最新的支持C++ 11的C++编译器,比如g++ >= 4.8,clang
    • 一份BLAS库,比如libblas,atlas,openblas,或者 intel mkl

    可选库:

    • CUDA Toolkit >= v7.0 以运行 nvidia GPUs
      • 需要 GPU 支持 Compute Capability >= 2.0
    • CUDNN 加速 GPU computation (only CUDNN 3 is supported)
    • opencv 进行图像的分段

    2. Ubuntu/Debian上构建

    安装依赖:

    sudo apt-get update
    sudo apt-get install -y build-essential git libatlas-base-dev libopencv-dev
    

    构建MXNet:

    git clone --recursive https://github.com/dmlc/mxnet
    cd mxnet;
    cp make/config.mk .
    make -j4
    

    3. OSX上的构建

    安装依赖:

    brew update
    brew tap homebrew/science
    brew info opencv
    brew install opencv
    

    构建MXNet:

    git clone --recursive https://github.com/dmlc/mxnet
    cd mxnet; cp make/osx.mk ./config.mk; make -j4
    

      

    4. Windows上的构建

      Windows上,已经提供好预构建好的安装包,可以通过 https://github.com/dmlc/mxnet/releases 下载。下载之后,解压并运行目录下的 setupenv.cmd 命令即可安装设置好环境。之后,即可编译运行MXNet的C++程序,或者安装Python包。

      当然,你也可以自己编译。

    5. Python包的安装

      MXNet Python包的前提要求:python>=2.7 and numpy

      可运行如下命令测试:

    python example/image-classification/train_mnist.py
    

      或者, 假如在编译的时候设置了USE_CUDA=1,可以使用GPU 0 来训练卷积神经网络。命令如下:

    python example/image-classification/train_mnist.py --network lenet --gpus 0
    

      如果报错,找不到类似这样的库文件 libcudart.so.7.5,则要设置LD_LIBRARY_PATH,最简单的方式在你的 /etc/profile 或 ~/.bashrc 文件中添加如下语句

        export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
      

      或者执行命令 sudo vi /etc/ld.so.conf.d/cuda.conf,在文件中添加如下内容:

    /usr/local/cuda/lib64
    /lib

      然后再执行命令:

    sudo ldconfig -v
    

      MXNet的Python包有多种安装方式,最简单明了的就是 添加 PYTHONPATH 环境变量,推荐开发者使用这种安装模式。使用这种安装模式,如果更新MXNet,并重新构建共享库之后,不需要任何重新安装Python包的步骤。否则,还必须重新安装MXNet的Python安装包,才能使用最新的。

      假设 mxnet 在你的主目录下,则 可以修改 ~/.bashrc 文件,并添加一行如下:

    export PYTHONPATH=~/mxnet/python
    

      

    6. R 包安装

    Windows/Mac users:

      对于Windows/Mac users,有已编译好R包,可以在R控制台,直接运行如下命令:

    install.packages("drat", repos="https://cran.rstudio.com")
    drat:::addRepo("dmlc")
    install.packages("mxnet")
    

      由于可能会更新,所以最好每周执行上面的命令,更新。

    编译安装:

      在mxnet目录下,执行如下命令:

    Rscript -e "install.packages('devtools', repo = 'https://cran.rstudio.com')"
    cd R-package
    Rscript -e "library(devtools); library(methods); options(repos=c(CRAN='https://cran.rstudio.com')); install_deps(dependencies = TRUE)"
    cd ..
    make rpkg
    

      如果有报缺少包的错误,则需先安装相应的R包,再执行以上命令。

      比如我的R环境缺少 roxygen2 包,则在R控制台,执行如下命令:

     install.packages("roxygen2")
    

      然后再执行最上面的脚本,编译出安装包,比如 mxnet_0.5.tar.gz 文件,最后执行如下命令安装:

    R CMD INSTALL mxnet_0.5.tar.gz
    

      

    7. 可选包安装

    CUDA

      下载网址: CUDA

      缺省的编译不支持CUDA,所以如果要添加CUDA支持,要修改 config.mk 文件中的编译选项,使之支持CUDA。

      CUDA有几种安装方式,由于文件比较大,国内有源,所以这里选择从网络安装。

      下载相应的网络包,如我的是 cuda-repo-ubuntu1504_7.5-18_amd64.deb 。然后执行如下命令:

    sudo dpkg -i cuda-repo-ubuntu1504_7.5-18_amd64.deb
    sudo apt-get update
    sudo apt-get install cuda
    

       修改文件 mxnet/make/config.mk,打开CUDA支持,如下:

        USE_CUDA = 1
        USE_CUDA_PATH = /usr/local/cuda

      如果以GPU计算模式执行报错,说找不到类似这样的库文件 libcudart.so.7.5,则要设置LD_LIBRARY_PATH,最简单的方式在你的 /etc/profile 或 ~/.bashrc 文件中添加如下语句:

        export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
      

      或者执行命令 sudo vi /etc/ld.so.conf.d/cuda.conf,在文件中添加如下内容:

    /usr/local/cuda/lib64
    /lib

     然后再执行命令:

    sudo ldconfig -v
    

    CUDNN

      下载网址:CUDNN (需要注册申请,批准通过,才能下载)

      缺省的编译不支持CUDNN,所以如果要添加CUDNN支持,要修改make/config.mk文件中的编译选项,使之支持CUDNN。

      解压缩下载文件,将 include 和 lib64 拷贝放置在 /usr/local/cuda 目录下即可。

       执行如下命令修改链接文件:

    cd /usr/local/cuda/lib64
    rm -rf libcudnn.so libcudnn.so.4
    ln -s libcudnn.so.4.0.4 libcudnn.so.4
    ln -s libcudnn.so.4 libcudnn.so
    

    OpenCV

      下载网址:OpenCV

      缺省的编译支持OpenCV。

    参考引用:

      MXNet主页: https://github.com/dmlc/mxnet/

      MXNet编译安装参考文档:http://mxnet.readthedocs.org/en/latest/build.html

  • 相关阅读:
    创建基于MailKit和MimeKit的.NET基础邮件服务
    MailKit---获取邮件
    C# 与JAVA 的RSA 加密解密交互,互通,C#使用BouncyCastle来实现私钥加密,公钥解密的方法
    .net 开源 FTP 组件 edtFTPnet
    Consul1-window安装consul
    通信传输利器Netty(Net is DotNetty)介绍
    工作中,如何衡量一个人的 JavaScript 编码水平?
    10个有趣又能编译为JavaScript的语言,你用过哪些?
    一定要你明白Java中的volatile
    面试总被问到HTTP缓存机制及原理?看完你就彻底明白了
  • 原文地址:https://www.cnblogs.com/simplelovecs/p/5145305.html
Copyright © 2020-2023  润新知