登录caffe官网 http://caffe.berkeleyvision.org/install_apt.html
按照官网的步骤进行配置,需要注意自己对应的Ubuntu的版本(这点很重要,如果不分版本将所有的依赖都安装上去会有冲突)。
本人使用的Ubuntu版本为16.04,,CUDA8.0+cudnn6.0.
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
2、安装BLAS
sudo apt-get install libatlas-base-dev
3、安装python
sudo apt-get install python-dev
4、安装glog,gflags,lmdb
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
5、sudo apt-get install libopenblas-dev
6、编译caffe
下载caffe网址https://github.com/BVLC/caffe
修改Makefile.config文件
(1) 如果用到cudnn,去掉#USE_CUDNN := 1的#。
(2)查看自己的opencv版本,pkg-config opencv --modversion
如果opencv的版本是3,需要去掉#OPENCV_VERSION := 3前的#。
(3) 如果使用python接口,需将#WITH_PYTHON_LAYER := 1前的#去掉。并修改python的路径。
将:INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
改为: 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 /usr/lib/x86_64-linux-gnu/hdf5/serial
复制Makefile.config.example 为Makefile.config
修改Makefile文件
(1)将:NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替换为:NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
(2)将:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
替换为:LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial(3)
(3)根据自己的python版本,修改PYTHON_LIBRARIES ?= boost_python python3.5。换成自己相应的python版本。
修改完成开始执行:
make
make test
make runtest
6、配置python接口。
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install
make pycaffe
如果没有报错,cd 到caffe文件夹下的python文件夹,在命令终端输入python
import caffe
没有报错,caffe 的python接口配置完成。
如果想要在任意的位置import caffe
gedit ~/.bashrc #打开
export PYTHONPATH=/home/usrname/caffe/python:$PYTHONPATH #配置文件最后写入该路径
source ~/.bashrc
7、跑通caffe 跑mnist,训练,测试。
命令行输入sudo sh ./data/mnist/get_mnist.sh //下载mnist数据集
sudo sh ./examples/mnist/create_mnist.sh //将下载的mnist数据转换成指定lmdb格式的数据。
sudo sh ./examples/mnist/train_lenet.sh //训练手写数字。(在训练的过程中出现找不到路径的问题,将路径都改成绝对路径)