1. 程式人生 > >Ubuntu16.04下配置caffe(僅CPU)

Ubuntu16.04下配置caffe(僅CPU)

第二次配置caffe環境,依舊把之前犯過的錯誤重新走了一遍,不會配置的地方還是忘了,所以打算通過部落格記錄下來,方便以後學習使用。

1.安裝依賴包

$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
$ sudo apt-get install --no-install-recommends libboost-all-dev
$ sudo apt-get install libopenblas-dev liblapack-dev
libatlas-base-dev $ sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

注:如果提示”安裝無法定位軟體包”,可以嘗試sudo apt-get update命令

2.安裝caffe

$ cd ~
$ git clone git://github.com/BVLC/caffe.git

3.編譯caffe

$ cd caffe
$ cp Makefile.config.example Makefile.config (複製一份Makefile.config檔案)

在Makefile.config檔案中把CPU_ONLY := 1的註釋給去掉,就是去掉前面的#號

接下來在caffe根目錄下執行下面命令

$ make all

在這個命令後,我遇到了一個報錯資訊,

./include/caffe/util/hdf5.hpp:6:18: fatal error: hdf5.h: No such file or directory

這是hdf5路徑問題造成的,可以通過下面命令來獲得hdf5的路徑,

$ sudo find / -name hdf5.h 

我找到的hdf5.h的路徑為:/usr/include/hdf5/serial/hdf5.h,於是在makefile.config檔案中,把檔案改成下面所示:

再執行一遍上述命令,繼續報錯,這次是/usr/bin/ld: cannot find -lhdf5
於是同上面一個處理 去找libhdf5.so
配置檔案改為:

LIBRARY_DIRS := $(PYTHON_LIB) /usr/lib/x86_64-linux-gnu/hdf5/serial \
            /usr/local/lib /usr/lib
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/include/hdf5/serial \
            /usr/local/include
/usr/bin/ld: cannot find -lcblas
/usr/bin/ld: cannot find -latlas

解決

sudo apt-get install libatlas-base-dev

接著執行下面命令:

make test

最後,

$ make runtest

4.編譯python介面

安裝pip

$ sudo apt-get install python-pip

執行安裝依賴
根據caffe/python目錄下的requirements.txt中列出的清單安裝即可。
fortran編譯器(gfortran)使為了安裝scipy,否則會報錯。

cd ~/caffe
sudo apt-get install gfortran
cd ./python
for req in $(cat requirements.txt); do pip install $req; done

回到caffe根目錄

sudo pip install -r python/requirements.txt

編譯pycaffe介面

make pycaffe -j8

此時報錯

python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: 沒有那個檔案或目錄

於是,輸入如下命令即可

sudo apt-get install python-numpy