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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM