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上构建

安装依赖:

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

构建MXNet:

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

3. OSX上的构建

安装依赖:

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

构建MXNet:

12 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

可运行如下命令测试:

1 python example``/image-classification/train_mnist``.py

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

1 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

然后再执行命令:

1 sudo ldconfig -v

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

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

1 export PYTHONPATH=~``/mxnet/python

6. R 包安装

Windows/Mac users:

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

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

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

编译安装:

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

12345 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控制台,执行如下命令:

1 install.packages``(``"roxygen2"``)

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

1 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 。然后执行如下命令:

123 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

然后再执行命令:

1 sudo ldconfig -v

CUDNN

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

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

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

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

1234 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。

相关推荐

  1. DMLC深度机器学习框架MXNet编译安装

    2023-12-31 09:56:05       34 阅读
  2. 了解机器学习/深度学习常用框架、工具

    2023-12-31 09:56:05       19 阅读
  3. MXNet安装

    2023-12-31 09:56:05       15 阅读
  4. 深度学习框架PyTorch介绍和安装方法

    2023-12-31 09:56:05       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-31 09:56:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-31 09:56:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-31 09:56:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-31 09:56:05       18 阅读

热门阅读

  1. 希尔排序:排序算法中的调优大师

    2023-12-31 09:56:05       33 阅读
  2. 【C#与Redis】--高级主题--Redis 哨兵

    2023-12-31 09:56:05       31 阅读
  3. MySQL一些常用命令

    2023-12-31 09:56:05       32 阅读
  4. Python-01-print、input、#

    2023-12-31 09:56:05       43 阅读
  5. kafka-python简单生产消费数据

    2023-12-31 09:56:05       47 阅读
  6. 基于单片机的公交车站自动报站器设计与实现

    2023-12-31 09:56:05       38 阅读
  7. MybatisPlus之常用插件的使用

    2023-12-31 09:56:05       29 阅读