記錄在ubuntu15.04環境下配置caffe cpu模式的過程,無NVIDIA顯卡,無cuda,安裝過程不算麻煩,只要思路清晰,快速定位問題,1個小時左右完成。
1 安裝依賴
1.1 安裝opencv
在這裏下載安裝腳本,有linux各個發行版本的。,安裝過程中要保證聯網。進入ubuntu文件夾。
- 如果要安裝最新的版本直接運行
sudo sh opencv_latest.sh
. - 如果要安裝指定版本的,就在opencv_install.sh中,在最開始,對version, downloadfile 這兩個變量指定值,如:
$version = "3.1.0"
$downloadfile = "OpenCV-3.1.0.zip"
$dlddir = "OpenCV"
然後sudo sh opencv_install.sh
.
因爲安裝腳本中這一句:
wget -O $downloadfile http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/$version/$downloadfile/download
是根據這兩個變量去sourceforge下載對應版本的opencv的,可以去sourceforge看看再賦值.
opencv的安裝過程如果不出錯,是不需要人工干預的,安裝腳本執行完成後,會提示==OpenCV 3.1.0 ready to be used==
安裝完opencv之後可以參考這裏的測試代碼測試。
1.2 安裝Boost
運行sudo apt-get install libboost-all-dev
,如果找不到包,更新一下源sudo apt-get update
再安裝
1.3 安裝BLAS
MKL,OpenBLAS和ATLAS都提供了BLAS,這裏使用ATLAS,運行sudo apt-get install libatlas-base-dev
1.4 安裝其他依賴
主要是caffe數據讀寫的一些依賴:
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler protobuf-c-compiler liblmdb-dev
1.5 安裝Glog
wget https://google-glog.googlecode.com/files/glog-0.3.3.tar.gz
tar zxvf glog-0.3.3.tar.gz
cd glog-0.3.3
sh ./configure
make && make install
1.6 安裝gflags
wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip
cd gflags-master
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
1.7 安裝lmdb
lmdb是caffe數據集文件的存儲格式。在這裏下載zip
unzip lmdb_mdb.master.zip
cd lmdb_mdb.master/libraries/liblmdb
make && make install
2 安裝caffe
2.1 下載
git clone git://github.com/BVLC/caffe.git
2.2 編譯
cd caffe #進入caffe根目錄
cp Makefile.config.example Makefile.config
vim Makefile.config
修改Makefile.config確保如下變量的值:
CPU_ONLY := 1 #去掉前面的註釋
BLAS := atlas
OPENCV_VERSION := 3 #opencv版本號大於3則去掉前面的註釋
MATLAB_DIR := /usr/local/MATLAB/R2015a #如果要使用matcaffe,去掉這行的註釋,路徑填matlab安裝路徑
#有時在編譯鏈接時hdf5的路徑找不到,直接加在這裏:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
在caffe根目錄運行
make all -j8 #可使用並行編譯
make test
make runtest
2.3 測試lenet
把…caffe/examples/mnist/lenet_solver.prototxt中設置爲==solver_mode: CPU==。
cd caffe #進入caffe根目錄
./data/mnist/get_mnist.sh #獲取mnist數據
./examples/mnist/create_mnist.sh #創建用於訓練網絡的lmdb文件
./examples/mnist/train_lenet.sh
在終端會輸出訓練過程中的迭代次數和loss變化,最終輸出準確率,有99%+
3 使用caffe
3.1 pycaffe
運行make all pycaffe
在py文件中導入caffe模塊,如果導入成功,就可以用pycaffe愉快地coding啦。
caffe_root = '/home/zhuyi/software/caffe' #填自己的caffe根目錄
import sys
sys.path.append(caffe_root + '/python') #添加系統路徑
import caffe
在caffe/examples中有ipynb的demo可以學習,在caffe/examples/pycaffe/layer中有python層的寫法示範。
3.2 matcaffe
運行make all matcaffe
,保證gcc/g++版本爲4.7.x(因爲其他版本不能mex)
在matlab腳本中使用caffe前添加:
caffe_root = '/home/zhuyi/software/caffe' %填自己的caffe根目錄
addpath([caffe_root '/matlab']); % 添加搜索路徑
如果matlab中使用caffe出現錯誤信息:
/../sys/os/glnxa64/libstdc++.so.6: version
`GLIBCXX_3.4.20' not found (required by /usr/lib/x86_64-linux-gnu/libprotobuf.so.9)
原因在這裏,需要在matlab啓動前指定這個lib:
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6