这篇文章将介绍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

DMLC深度机器学习框架MXNet的编译安装的更多相关文章

  1. 深度学习框架Caffe的编译安装

    深度学习框架caffe特点,富有表达性.快速.模块化.下面介绍caffe如何在Ubuntu上编译安装. 1. 前提条件 安装依赖的软件包: CUDA 用来使用GPU模式计算. 建议使用 7.0 以上最 ...

  2. 人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练

    人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练 MXNet 是一个轻量级.可移植.灵活的分布式深度学习框架,2017 年 1 月 23 日,该项目进入 Apache 基金会,成为 ...

  3. 机器学习框架MXnet安装步骤

    安装环境:redhat7.1+vmw 安装步骤: # Install git if not already installed. sudo yum -y install git-all# Clone ...

  4. Ubuntu 14.04 安装caffe深度学习框架

    简介:如何在ubuntu 14.04 下安装caffe深度学习框架. 注:安装caffe时一定要保持网络状态好,不然会遇到很多麻烦.例如下载不了,各种报错. 一.安装依赖包 $ sudo apt-ge ...

  5. 28款GitHub最流行的开源机器学习项目,推荐GitHub上10 个开源深度学习框架

    20 个顶尖的 Python 机器学习开源项目 机器学习 2015-06-08 22:44:30 发布 您的评价: 0.0 收藏 1收藏 我们在Github上的贡献者和提交者之中检查了用Python语 ...

  6. 转:TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

    http://geek.csdn.net/news/detail/138968 Google近日发布了TensorFlow 1.0候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自Tens ...

  7. Amazon宣布将MXNet作为AWS的深度学习框架——貌似性能比tf高啊

    Amazon公司的Werner Vogels于上周宣布Amazon深度学习框架将会正式选用MXNet,并且AWS将会通过增加源代码贡献.改进文档以及支持来自其它框架的可视化.开发以及迁移工具,为实现M ...

  8. tensorflow/pytorch/mxnet的pip安装,非源代码编译,基于cuda10/cudnn7.4.1/ubuntu18.04.md

    os安装 目前对tensorflow和cuda支持最好的是ubuntu的18.04 ,16.04这种lts,推荐使用18.04版本.非lts的版本一般不推荐. Windows倒是也能用来装深度GPU环 ...

  9. MXNet在64位Win7下的编译安装

    注:本文原创,作者:Noah Zhang  (http://www.cnblogs.com/noahzn/) 我笔记本配置比较低,想装个轻量级的MXNet试试,装完之后报错,不是有效的应用程序,找不到 ...

随机推荐

  1. perl-cgi基础

    来源: http://www.cnblogs.com/itech/archive/2012/09/22/2698553.html 代码: http://xxxxx/cgi/perl-cgi.cgi?n ...

  2. c++11 右值引用、move、完美转发forward<T>

    #include <iostream> #include <string> using namespace std; template <typename T> v ...

  3. Htttp协议

    我 们在浏览器的地址栏里输入的网站地址叫做URL(UniformResourceLocator,统一资源定位符).就像每家每户都有一个门牌地址一样, 每个网页也都有一个Internet地址.当你在浏览 ...

  4. get 和 post请求的区别

    (1)GET请求用于获取信息,从Client的角度看,不会改变资源状态,并且多次对同一URL的多个请求应该返回相同的结果.        GET请求的参数会显示在URL中,即放置在HTTP协议头中(所 ...

  5. 一个不错的PHP文件页面缓存类

    在php中缓存分类数据库缓存,文件缓存和内存缓存,下面我来给各位同学详细介绍PHP文件缓存类实现代码,有需要了解的朋友可参考. 页面缓存类 <?php    /*    * 缓存类    cac ...

  6. php薪资

    2千的php程序员就是可以用cms,做一个小企业的门户网站. 3千的php程序员,可以自己写代码开发php软件,但是这样程序员写的代码非常混乱,通常只能写数千行代码的小软件,并且痛苦的完工. 4K的p ...

  7. linux系统查询命令

    查看CPU 1.1 查看CPU个数 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:删除重复行 ...

  8. Android中购物车的全选、反选、问题和计算价格

    此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中.点击全选会全部选中,再次点击时,变为全部不选中. //- ...

  9. Android.mk与jni目录的关系

    附1: Android.mk与jni目录的关系: 在某目录下,如/src/modules1/下存放Android.mk和Application.mk,调用ndk-build试图编译时,会遇到如下错误: ...

  10. URAL 2099 Space Invader题解 (计算几何)

    啥也不说了,直接看图吧…… 代码如下: #include<stdio.h> #include<iostream> #include<math.h> using na ...