2021-05-12 14:32:11
深度學習框架Caffe在Ubuntu下編譯安裝
深度學習框架Caffe特點,富有表達性、快速、模組化。下面介紹Caffe如何在Ubuntu上編譯安裝。
1. 前提條件
安裝依賴的軟體包:
- CUDA 用來使用GPU模式計算.
- 建議使用 7.0 以上最新的版本
- BLAS via ATLAS, MKL, or OpenBLAS.
- Boost >= 1.55
protobuf
,glog
,gflags
,hdf5
可選依賴軟體包:
- OpenCV >= 2.4 including 3.0
- IO libraries:
lmdb
,leveldb
(note: leveldb requiressnappy
) - cuDNN for GPU acceleration (v3)
程式設計開發介面:
Pycaffe 和 Matcaffe,各自有各自的要求:
- For Python Caffe:
Python 2.7
orPython 3.3+
,numpy (>= 1.7)
, boost-providedboost.python
- For MATLAB Caffe: MATLAB with the
mex
compiler
編譯版本:
cuDNN Caffe:支援CUDA和cuDNN快速操作
CPU-only Caffe:無CUDA支援,只使用CPU。可用於雲和叢集部署。
2. 編譯
安裝依賴包(boost 和 protobuf
, glog
, gflags
, hdf5
):
1
|
sudo apt-get install libboost-all-dev libprotobuf-dev protobuf-compiler libhdf5-serial-dev libgflags-dev libgoogle-glog-dev |
安裝依賴包(atlas):
1
|
sudo apt-get install libatlas-base-dev |
安裝依賴包(CUDA):
下載網址: CUDA
CUDA有幾種安裝方式,由於檔案比較大,國內有源,所以這裡選擇從網路安裝。
下載相應的安裝包,如我的是 cuda-repo-ubuntu1504_7.5-18_amd64.deb 。然後執行如下命令:
1
2
3
|
sudo dpkg -i cuda-repo-ubuntu1504_7.5-18_amd64.deb sudo apt-get update sudo apt-get install cuda |
設定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
然後再執行命令:
1
|
sudo ldconfig |
安裝可選包(IO libraries: lmdb
, leveldb
(note: leveldb requires snappy
) 和 opencv):
1
|
sudo apt-get install libleveldb-dev libsnappy-dev liblmdb-dev libopencv-dev |
安裝CUDNN:
下載網址:CUDNN (需要註冊申請,批准通過,才能下載)
解壓縮下載檔案,將 include 和 lib64 拷貝放置在 /usr/local/cuda 目錄下即可。
執行如下命令修改連結檔案:
1
2
3
4
|
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 |
獲取原始碼:
1
|
git clone git: //github .com /BVLC/caffe .git |
新增修改編譯設定:
1
|
cp Makefile.config.example Makefile.config<br> vi Makefile.config |
a. 啟用CUDNN,去掉"#"
USE_CUDNN := 1
b. 設定一些參照檔案(增加部分主要是解決新版本下,HDF5的路徑問題)
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
c.啟用opencv3,如果你使用的 opencv >= 3.0.0
OPENCV_VERSION := 3
否則編譯時候會報錯 “ 對‘cv::imdecode(cv::_InputArray const&, int)’未定義的參照 ”
執行如下命令編譯:
1
2
3
|
make all -j4 make test -j4 make runtest -j4 |
- 要編譯使用cuDNN加速,在Makefile.config檔案中,設定
USE_CUDNN := 1
- 要編譯 CPU-only Caffe版本,在Makefile.config檔案中,設定
CPU_ONLY := 1
要編譯Python 和 MATLAB 封裝包,在分別各自使用 make pycaffe
和 make matcaffe 命令編譯前,確定在
Makefile.config
檔案中,設定好 MATLAB 和 Python的路徑。
要安裝使用pycaffe,必須安裝相應的python依賴包,可進入python,並執行如下命令安裝:
1
|
for req in $( cat requirements.txt); do pip install $req; done |
注意: 在安裝python包時,可能會失敗,是由於缺少相應的cpp版本,比如我的機器安裝pyyaml失敗,於是執行命令安裝libyaml
1
|
sudo apt-get install libyaml-cpp-dev |
執行如下命令編譯 pycaffe:
1
|
make pycaffe -j4 |
在安裝完成之後,如果想要匯入caffe
Python模組,則新增模組路徑到你的環境變數 $PYTHONPATH
中。比如在你的~/.bashrc中新增如下一行:
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
3. 測試安裝
下面通過執行mnist來驗證caffe已正常安裝:
1. 資料預處理
1
|
data /mnist/get_mnist .sh |
2. 重建lmdb檔案。Caffe支援多種資料格式輸入網路,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根據自己需要選擇不同輸入吧。
1
2
|
examples /mnist/create_mnist .sh |
生成mnist-train-lmdb 和 mnist-train-lmdb資料夾,這裡包含了lmdb格式的資料集
3. 訓練mnist
1
|
examples /mnist/train_lenet .sh |
Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安裝 http://www.linuxidc.com/Linux/2016-07/132860.htm
Ubuntu 16.04系統下CUDA7.5設定Caffe教學 http://www.linuxidc.com/Linux/2016-07/132859.htm
Caffe在Ubuntu 14.04 64bit 下的安裝 http://www.linuxidc.com/Linux/2015-07/120449.htm
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 設定說明 http://www.linuxidc.com/Linux/2015-04/116444.htm
相關文章