前言:本博客是安装caffe的完整历程,遇到的问题和自己解决方法均在里面,请耐心阅读。而且含有使用别人caffe程序时有关protobuf问题自己的解决方案
https://blog.csdn.net/zhuzizhong/article/details/84339154
环境为:
ubuntu 16.0.4 cuda=9.0 cudnn=7.0
准备工作
1 、安装依赖项:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
sudo apt-get install -y protobuf-c-compiler protobuf-compiler
2、解决在配置caffe,在make时候把报错(fatal error: glog/logging.h: No such file or directory)
(1) git clone https://github.com/google/glog
(2) sudo apt-get install autoconf automake libtool
(3) 编译和安装 : cd到解压文件夹下 root/glog
./autogen.sh
./configure
make
make install
配置caffe
1、下载caffe:https://github.com/BVLC/caffe
2、将解压的文件夹caffe放到home(可以根据自己指定路径)下:
指令:cp -r /自己解压的caffe路径 /home/
3、cd到caffe目录下,将Makefile.config.example备份为Makefile.config
cd /home/caffe
cp Makefile.config.example Makefile.config
4、打开并修改配置文件(Makefile.config)
sudo test
(1)修改文件:
gedit Makefile.config(打开Makefile.config)
使用cudnn
#OPENCV_VERSION := 3修改为:OPENCV_VERSION := 3 (第23行)
使用python来编写layer
#WITH_PYTHON_LAYER := 1修改为WITH_PYTHON_LAYER := 1 (第94行)
在make pycaffe后常出现:提示错误:src/caffe/net.cpp:8:18: fatal error: hdf5.h: No such file or directory
将 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include (第97行) 修改为
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include(此处要有一个空格)/usr/include/hdf5/serial
将 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib (第98行) 修改为
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib (此处要有一个空格) /usr/lib/x86_64-linux-gnu/hdf5/serial
注释两行(根据自己的GPU型号修改arch值)
#-gencode arch=compute_20,code=sm_20 \ (第39行)
#-gencode arch=compute_20,code=sm_21 \ (第40行)
(2)修改makefile文件
注意:这里不要使用 gedit makefile 命令,而是找到 makefile 直接打开
将 NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) (第425行)替换为
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
(3)编译caffe并且测试
make clean
make –j8
make test –j8
make runtest –j8
如果执行runtest后,输出PASSED,说明测试成功
5、 安装python接口
(1)cd 到caffe 下
(2)sudo make pycaffe -j8
(3)解决import caffe时 ImportError: No module named caffe 错误
gedit ~/.bashrc(打开.bashrc)
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH(注意:path/to是自己caffe的路径)
(4)保存, 生效 source ~/.bashrc
(5)验证python与caffe接口
python
import caffe
如下图则成功
(6)解决 ImportError: No module named google.protobuf.internal错误
请看 我的博客 https://blog.csdn.net/zhuzizhong/article/details/84339154
首先查看 protobuf 信息
whereis protoc #查看那些路径下安装了protobuf
which protoc #查看默认选用的protobuf
protoc --version #查看当前默认的protobuf的版本(配置caffe时很重要)
方法1
在自己安装的caffe路径下,makefile文件中修改
(注意:这里不要使用 gedit makefile 命令,而是找到 makefile 直接打开)
$(Q)protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<(第649行)修改为:
$(Q)/usr/bin/protoc --proto_path=$(PROTO_SRC_DIR) --cpp_out=$(PROTO_BUILD_DIR) $<
$(Q)protoc --proto_path=src --python_out=python $<(第654行)修改为:
$(Q)/usr/bin/protoc --proto_path=$(PROTO_SRC_DIR) --python_out=$(PY_PROTO_BUILD_DIR) $<
方法2 上述方法无法解决时:——安装特定版本(推荐)
cd 到 ~/anaconda2/bin目录下 执行下面指令:
pip install protobuf==2.6.1
(测试import caffe)成功
6、安装lmdb
apt-get install libffi-dev python-dev build-essential
pip install lmdb
7、sklearn
pip install -U scikit-learn
验证
pip list
![](https://i-blog.csdnimg.cn/blog_migrate/d3275ba27b3feeee5ee328309d9af297.png)
仅是本人在操作时遇到问题解决问题的过程,仅供参考!
参考:
https://blog.csdn.net/yhaolpz/article/details/71375762
https://blog.csdn.net/hnsywangxin/article/details/79208785
https://blog.csdn.net/m0_38082419/article/details/80117132
https://blog.csdn.net/u013249853/article/details/79827491?utm_source=blogxgwz2
https://blog.csdn.net/jpday/article/details/70741619?utm_source=copy