自己安装caffe的完整历程
阅读原文时间:2021年04月20日阅读:1

前言:本博客是安装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://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

           https://blog.csdn.net/wuzuyu365/article/details/52431062

           https://blog.csdn.net/dongjuexk/article/details/78567717

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章