Ubuntu16.04 Caffe 安装步骤(亲测可用)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/TH_NUM/article/details/84868805

安装流程细分为如下10个步骤,细化步骤粒度更易避免出错:

1、安装 CUDA 9.2
2、安装 cudnn
3、安装 opencv3.1
4、安装 caffe
5、安装 pycaffe notebook 接口环境

0 安装依赖包

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

sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

sudo apt-get install git cmake build-essential

第一步 安装CUDA9.2

可以参考之前的cuda安装博客:https://blog.csdnnet/TH_NUM/article/details/83411686

第二步骤安装cudnn

登录官网:https://developer.nvidia.com/rdp/cudnn-archive,下载对应 cuda 版本且 linux 系统的 cudnn 压缩包。在这里插入图片描述
我这里下载的是 cudNN v7.3.1 Library for linux

下载完成后解压,得到一个 cudn 文件夹,该文件夹下include 和 lib64 两个文件夹,命令行进入 cudn/include 路径下,然后进行以下操作:
(1)

sudo cp cudnn.h /usr/local/cuda/include/ #复制头文件

(2) 进入lib64目录下,对动态文件进行复制和软链接一定要注意下面的安装注意事项,否则执行测试样例的时候会出错。

cd /cuda/lib64
sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so  libcudnn.so.7    #删除原有动态文件,我这里是没有libcudnn.so.7的

sudo ln -s libcudnn.so.7.0.4  libcudnn.so.7  #生成软衔接,要检查自己的是不是libcudnn.so.7.0.4,也可能是其他的版本,一定要注意

sudo ln -s libcudnn.so.7 libcudnn.so      #生成软链接

安装OpenCV3.2

详细的安装请参考:http://www.linuxidc.com/Linux/2017-07/145446.htm

(1) 从官网(http://opencv.org/downloads.html)下载Opencv,并将其解压到你要安装的位置,假设解压到了/home/opencv。

unzip opencv-3.2.0.zip

sudo cp ./opencv-3.2.0 /home/username

sudo mv opencv-3.2.0 opencv

(2) 安装前准备,创建编译文件夹

cd ~/opencv

mkdir build

cd build

(3) 配置

    sudo apt install cmake
    
    sudo cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local  ..

(4) 编译

sudo make -j8 (-j8表示并行计算,根据自己电脑的配置进行设置,配置比较低的电脑可以将数字改小或不使用,直接输make)

(5) 安装

以上只是将opencv编译成功,还没将opencv安装,需要运行下面指令进行安装:

sudo make install

配置caffe

(1) 下载Caffe

使用Git直接下载Caffe非常简单,或者去https://github.com/BVLC/caffe下载。

下载完成后,会在家目录下的下载里找到caffe-master.zip,用unzip命令解压到家目录下,然后重命名为caffe。

(3) 修改Makefile.config

因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子。因此,首先将Makefile.config.example的内容复制到Makefile.config:

sudo cp Makefile.config.example Makefile.config

打开并修改配置文件:

sudo gedit Makefile.config #打开Makefile.config文件
根据个人情况修改文件:

a. 若使用cudnn,则将

#USE_CUDNN:= 1

修改成:

USE_CUDNN:= 1

b. 若使用的opencv版本是3的,则将

#OPENCV_VERSION:= 3

修改为:

OPENCV_VERSION:= 3

c. 若要使用python来编写layer,则将

#WITH_PYTHON_LAYER:= 1 

修改为WITH_PYTHON_LAYER := 1

d. 重要的一项,将

#Whatever else you find you need goes here. 下面的

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      

这是因为Ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径。

(4) 修改Makefile文件

打开Makefile文件,做如下修改,将:

NVCCFLAGS +=-ccbin=\$(CXX) -Xcompiler-fPIC\$(COMMON_FLAGS)

替换为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX)-Xcompiler -fPIC $(COMMON_FLAGS)

(5) 编辑/usr/local/cuda/include/host_config.h

将其中的第115行注释掉,将

#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!

改为:

//#error-- unsupported GNU version! gcc versionslater than 4.9 are not supported!

(6) 编译

make all -j8  #-j根据自己电脑配置决定

(7) 测试

sudo make runtest

如果运行之后出现下图所示,说明caffe配置成功。
在这里插入图片描述

安装 pycaffe notebook 接口环境

在上一步成功安装 caffe 之后,就可以通过 caffe 去做训练数据集或者预测各种相关的事了,只不过需要在命令行下通过 caffe 命令进行操作,而这一步 pycaffe 的安装以及 notebook 环境配置只是为了更方便的去使用 caffe ,实际上大多数都是通过 python 来操作 caffe 的,而 notebook 使用浏览器作为界面,可以更方便的编写和执行 python 代码。

这里我使用的是python2.7,python3 一堆错误。。。。。

(1)然后编译 pycaffe :

cd caffe
sudo make pycaffe -j8

编译 pycaffe 成功后,验证一下是否可以在 python 中导入 caffe 包,首先进入 python 环境:

import caffe

若不报错则表示 caffe 的 python 接口已正确编译,但是应该不会那么顺利,以下是我导入 caffe 时出现的错误:

错误1:

File "<stdin>", line 1, in <module>   ImportError: No module named caffe

解决方法:

sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc

source ~/.bashrc

错误2:

ImportError: No module named skimage.io

解决办法:

pip install -U scikit-image #若没有安装pip: sudo apt install python-pip

ok,最后一步,配置notebook环境

首先要安装python接口依赖库,在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,按照这个清单安装就可以了。

在安装scipy库的时候,需要fortran编译器(gfortran),如果没有这个编译器就会报错,因此,我们可以先安装一下。

首先进入 caffe/python 目录下,执行安装代码:

sudo apt-get install gfortran

for req in $(cat requirements.txt); do sudo pip install $req; done

安装完成以后执行:

sudo pip install -r requirements.txt

就会看到,安装成功的,都会显示Requirement already satisfied, 没有安装成功的,会继续安装。

然后安装 jupyter :

sudo pip install jupyter

安装完成后运行 notebook :

jupyter notebook

或

ipython notebook

参考文章:
https://blog.csdn.net/yhaolpz/article/details/71375762

猜你喜欢

转载自blog.csdn.net/TH_NUM/article/details/84868805