台式机Ubuntu16.04下的caffe安装详细步骤

参考博客https://blog.csdn.net/yhaolpz/article/details/71375762,该博客写的很详细,为我安装过程提供了很大的帮助,感谢!本文是在安装cuda这儿做了一些改动,没有进入文本模式安装,算是一些小小的改进吧。

硬件条件:Intel5+nvidia,默认Ubuntu16.04系统已装成功
系统设置>>软件和更新,将源代码打勾,服务器站点>>选择最佳服务器,关闭

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
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

确保依赖包全部安装成功。

2、禁用nouveau
由于是台式机,将系统设置>>软件和更新>>附加驱动,改为“使用nvidia binary driver”(不改后面安装会出错,但是感觉会和后面cuda安装时的驱动有冲突)
禁用掉 nouveau 后才能顺利安装 NVIDIA 显卡驱动,首先打开文件/etc/modprobe.d/blacklist-nouveau.conf ,

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

文件中无内容,写入

blacklist nouveau option nouveau modeset=0

保存,关闭。

3、配置环境变量
执行

sudo gedit ~/.bashrc

在文件最后写入

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH 
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

保存,关闭。

4、下载并安装cuda8.0
(1)进入官网 https://developer.nvidia.com/cuda-downloads
选择相应类型然后下载
在这里插入图片描述
(2)将下载后的包放在主目录下,该目录下执行:

sudo sh 文件名

出现0%信息,长按空格键或enter,使进度增至100%,按照操作提示,除了安装driver时输n,其他都输y
执行:

sudo gedit ~/.bashrc

文件最后加入以下两行:

export PATH=/usr/local/cuda-8.0/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

保存并关闭。
再执行:

source ~/.bashrc

使配置生效。
(3)验证是否安装成功

cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery 
sudo make 
./deviceQuery

如果出现
在这里插入图片描述
证明安装成功。

5、安装cuDNN
登陆官网:https://developer.nvidia.com/rdp/cudnn-download
下载对应cuda和linux系统版本的cuDNN,不过需要注册,也可以从我的百度网盘下载,
链接:https://pan.baidu.com/s/1eO8Pf6cHWk7tMkVhvUD7vQ
提取码:937l
下载完成后解压,得到一个 cudn 文件夹,该文件夹下include 和 lib64 两个文件夹,命令行进入 cudn/include 路径下,然后进行以下操作:

sudo cp cudnn.h /usr/local/cuda/include/

命令行进入 cudn/lib64 路径下,运行以下命令:

sudo cp lib* /usr/local/cuda/lib64/ #复制动态链接库
cd /usr/local/cuda/lib64/sudo rm -rf libcudnn.so libcudnn.so.5 #删除原有动态文件
sudo ln -s libcudnn.so.5.1.10 libcudnn.so.5 #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so #生成软链接

安装完成后可用 nvcc -V 命令验证是否安装成功,若出现以下信息则表示安装成功:
在这里插入图片描述
6、安装opencv
进入官网http://opencv.org/releases.html
我选择3.4.0,点击sources下载,解压到你要安装的位置,命令行进入已解压的文件夹 opencv-3.4.0 目录下,执行:

mkdir build # 创建编译的文件目录 
cd build 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. make -j8 #编译

如果下载的是其他版本,如3.1.0,make -j8命令编译到90%左右的时候可能会出现graphcut相关错误,这是由于opecv3.1与cuda8.0不兼容导致的。解决办法:
修改 /opencv-3.1.0/modules/cudalegacy/src/graphcuts.cpp 文件内容,如图:(图片源于网络,原博链接附在本文开头)
在这里插入图片描述
编译成功后安装:

sudo make install #安装

安装完成后通过查看 opencv 版本验证是否安装成功:

pkg-config --modversion opencv

或者执行python>>import cv2,没错误说明安装成功。
如果仍显示没有该模块,下载opencv-python,下载步骤:

  • 安装pip3(使用python3)
sudo apt install python-pip3
  • 用pip3安装opencv-python
pip3 install opencv-python

就可以导入cv2了。
在后边用到opencv时,还有可能会出现问题,如:
“error while loading shared libraries:libopencv_highgui.so…2.4 linux”,是由于opencv的路径没有配置好,需要给系统加入opencv库的环境变量,也就是库存放的位置和,但不是opencv解压路径,具体操作步骤为:

  • 打开文件/etc/ld.so.conf,
sudo gedit /etc/ld.so.conf
  • 在文件中加一行
include /use/local/lib
  • 打开bash.bashrc文件
sudo gedit /etc/bash.bashrc
  • 在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
  • 然后运行source /etc/bash.bashrc

就可以正常运行了。

如果想安装非caffe的其他框架,到这儿就结束了。

7、安装caffe
在你要安装的路径下复制下载git:
git clone https://github.com/BVLC/caffe.git
(1)复制 Makefile.config.example 文件并更名为 Makefile.config,修改 Makefile.config 文件,执行以下命令在 caffe 目录下打开该文件:

sudo gedit Makefile.config

然后进行以下修改:

  • 使用cuDNN:
#USE_CUDNN := 1

修改成:

USE_CUDNN := 1
  • 使用opencv3
#OPENCV_VERSION := 3

修改为:

OPENCV_VERSION := 3
  • 使用 python 接口
#WITH_PYTHON_LAYER := 1

修改为

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

(2)修改 caffe 目录下的 Makefile 文件:

  • 将:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)

替换为:

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
  • 将:
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
  • 修改 /usr/local/cuda/include/host_config.h 文件 :
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!

改为

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

(3)在 caffe 目录下执行 :

make all -j8

编译成功后可运行测试:

sudo make runtest -j8

在这里插入图片描述
执行成功的界面如上图(图片源于网络)

猜你喜欢

转载自blog.csdn.net/xue_csdn/article/details/90898400