1 可以提前安装caffe的依赖库,避免编译时报错,当然也可以直接编译caffe,提示缺少哪个再进行安装:
依赖的库有: OpenCV(可以提前运用源码安装,比较简单),
Boost(不需要安装所有的库,只需安装filesystem, python, system, thread) ,即运行:
./bootstrap.sh --with-libraries=filesystem,python,system,thread
sudo ./b2 --stagedir=/usr
注: boost-python最好用python2, caffe默认是用python2的版本, 利用python3,需要自行修改点代码
2 直接通过apt-get进行安装依赖
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libatlas-base-dev
3 安装python相应的依赖库,比如numpy, matplotb, scikit
pip install numpy 等等
4 下载caffe源码并编译:
git clone https://github.com/BVLC/caffe.git
cp Makefile.config.example Makefile.config
(1)修改Makefile.config, 去掉注释# 使得 CPU_ONLY := 1
(2)修改头文件环境变量,避免boost等头文件缺失 : export CPLUS_INCLUDE_PATH=/path/to/boost
或者修改Makefile.config, 在INCLUDE_DIRS:= 处添加相应的路径,比如INCLUDE_DIRS:=$(PYTHON_INCLUDE) /path/to/boost
(3)同时修改LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial 以避免编译时 -lhdf5的error
(4)添加opencv依赖库, 修改Makefile LIBRARIES += 为 LIBRARIES += glog gflags protobuf leveldb snappy \ lmdb boost_system hdf5_hl hdf5 m \ opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs
5 make all
make pycaffe
编译过程中如果报缺少 numpy/arrayobject.h的错误,解决办法与boost等文件类型,在Makefile.config INCLUDE_DIRS中添加对应的路径即可