Ubuntu16.04 python3 caffe安裝
阿新 • • 發佈:2019-02-01
前言
本文旨在記錄在Ubuntu16.04和python3.5基礎上安裝caffe的問題。安裝中會遇到一些問題,在每一步都有相應的解決方案。下面以CPU版本為例進行說明。
① 安裝依賴
注意:這裡如果沒裝git的同學,請先去安裝一個git。
sudo apt-get install git
下面是依賴檔案:
# python3 modules (numpy, protobuf, skimage) sudo pip3 install numpy sudo apt-get install python3-skimage sudo apt-get install python3-protobuf # build essential sudo apt-get install build-essential cmake git pkg-config # gflags, glog, lmdb sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev # boost sudo apt-get install libboost-all-dev # hdf5 sudo apt-get install libhdf5-dev # protobuf sudo apt-get install protobuf-compiler libprotobuf-dev # blas sudo apt-get install libblas-dev libcblas-dev libatlas-base-dev libopenblas-dev # leveldb sudo apt-get install libleveldb-dev # snappy sudo apt-get install libsnappy-dev
② 安裝opencv3
我安裝的方式是:
git clone https://github.com/opencv/opencv
cd opencv
mkdir build
cd build
cmake ..
make
sudo make install
③ 安裝caffe(CPU版本)
從這一步開始,坑就開始多了。這裡詳細說一下我遇到的坑。
1、Checkout
cd ~/Dev # 我的開發環境目錄
git clone https://github.com/BVLC/caffe
cd caffe
cp Makefile.config.example Makefile.config
2、修改Makefile.config檔案
如下圖所示,在caffe目錄下,存在了Makefile.config這個檔案。
下面我們要對其進行修改:
1、取消對CPU_ONLY := 1的註釋(第8行)
2、取消對OPENCV_VERSION := 3的註釋(第21行)
3、取消對PYTHON_INCLUDE的註釋(第79行),並對之前的python2對應的PYTHON_INCLUDE進行註釋
4、配置引用檔案路徑(主要是HDF5的路徑問題)
原來的路徑為:
修改為:
即在INCLUDE_DIRS和LIBRARY_DIRS後面分別加上了/usr/include/hdf5/serial
和/usr/lib/x86_64-linux-gnu/hdf5/serial
5、編譯並測試
sudo make all
sudo make test
sudo make runtest
下面是遇到的問題,一些關於python環境變數設定的問題不在此討論。
- Q1:如果這個時候直接編譯(sudo make),會出現問題"ld cannot find lboost_python3",這個時候應該建立一個libboost_python-py35.so的符號連結。
具體做法為"cannot find -lboost_python3" when using Python3 Ubuntu16.04:
cd /usr/lib/x86_64-linux-gnu
sudo ln -s libboost_python-py35.so libboost_python3.so
- Q2:在編譯make test的時候顯示:"libopencv_core.so.3.3: cannot open shared object: …"
解決方法為:在/etc/ld.so.conf裡面加入一行: /usr/local/lib
④ 安裝成功
sudo make all
的結果:
sudo make test
的結果:
sudo make runtest
的結果:
⑤ 安裝caffe的python介面
這裡還沒弄,請看參考資料3。