Caffe cpu版本 Linux配置命令及搭建


Caffee 安裝過程

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

2.安裝caffe

$ 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 -j81

此時報錯

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

於是,輸入如下命令即可

sudo apt-get install python-numpy
import sys
sys.path.append("/(你的caffe路徑)/caffe/python")
sys.path.append("/(你的caffe路徑)/caffe/python/caffe")

PS:永久性添加python路徑:

cd /usr/lib/python2.7/dist-packages 
sudo echo mycaffe.pth    #建立一個mycaffe.pth文件
sudo gedit mycaffe.pth   #編輯文件

開始python2 import caffe

報錯:ImportError: No module named skimage.io

解決:

sudo apt-get install python-skimage

報錯:ImportError: No module named google.protobuf.internal

conda install protobuf

還是沒有解決:

接着找:

sudo apt-get install python-protobuf

成功了!

接下來開始測試:

Mnist 數據集獲取:

sudo sh ./data/mnist/get_mnist.sh
sudo sh ./examples/mnist/create_mnist.sh

2、修改配置

修改該目錄下的prototxt擴展名配置文件
修改./examples/mnist/lenet_solver.prototxt
定位到最后一行:solver_mode: GPU,將GPU改為CPU。 使用CPU進行測試

3、運行
執行文件命令:

sudo sh ./examples/mnist/train_lenet.sh

報錯:./train_lenet.sh: 4: ./train_lenet.sh: ./build/tools/caffe: not found

重新編譯

sudo make all

顯示: nothing to be done for all

最終訓練完的模型存儲為一個二進制的protobuf文件:
    ./examples/mnist/lenet_iter_10000.caffemodel

這個模型就可以用來直接使用了

突然就可以使用了。。。

重新執行

sudo sh ./examples/mnist/train_lenet.sh

最好加time 看看所用時間

開心,還好是cpu版本的,一點一點問題解決了

主要參考博客:

博客1

博客2


免責聲明!

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



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