国内相关教程都互相借鉴大同小异,于是连出错的方式也雷同,所以借鉴了国外多个技术论坛,写一篇配置教程。
环境:
操作系统: Ubuntu 16.04
GCC/G++:5.4.0
CUDA:9.0.252
OpenCV: 2.4.11和3.3.1
Matlab :R2014b(a)
Python: 2.7
1.在安装的路径下 clone :
git clone https://github.com/BVLC/caffe.git
2.进入 caffe ,Makefile.config.example是caffe给出的makefile例子
cd caffe/
3.Makefile.config.example 只是caffe 给出的配置文件例子,不能用来编译 caffe。将 Makefile.config.example 文件复制一份,更名为 Makefile.config 。编译 caffe 时需要的是 Makefile.config
文件:
sudo cp Makefile.config.example Makefile.config
4.修改 Makefile.config 文件,在 caffe 目录下打开该文件:
sudo gedit Makefile.config
5.修改 Makefile.config 文件内容
5.1 取消应用 cudnn的注释
USE_CUDNN := 1
5.2 应用 opencv 版本
OPENCV_VERSION := 3
5.3 使用 python 接口
WITH_PYTHON_LAYER := 1
5.4 修改 python 路径
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
6.修改 caffe 目录下的 Makefile 文件:
6.1 修改LIBRARIES
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
6.2 修改NVCCFLAGS
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
7.修改 /usr/local/cuda/include/host_config.h
文件 :
添加注释
#error -- unsupported GNU version! gcc versions later than 5 are not supported!
7.1 出现caffe.pb.h丢失问题解决方法
原因一:make太快造成的错误
make all -j
改为 make all
原因二:丢失问题
①用protoc从caffe/src/caffe/proto/caffe.proto
生成caffe.pb.h
和caffe.pb.cc
②首先安装protobuf
sudo apt-get install protobuf-compiler libprotobuf-dev libprotoc-dev
③再而安装protobuf-c
sudo apt-get install libprotobuf-c0-dev protobuf-c-compiler
cd caffe/src/caffe/proto/#进入proto目录下
`rotoc --cpp_out=/home/cow/caffe/include/caffe/ caffe.proto#生成文件
一般都是环境变量配置问题较多,所以一定要提前把config配置好。深度学习框架caffe需要的准备条件严格,容易出现问题。编译caffe出现的问题可以出一套集锦了。
最好使用make clean
命令清除编译结果,避免出现其它未知问题
8.开始编译,在 caffe 目录下执行 :
make all
9.编译成功后可运行测试:
sudo make runtest
注:编译和安装遇到更多问题请参考:Ubuntu下编译caffe解决方案总结