ubuntu16.04+caffe+GPU+cuda8.0+cudnn5完整安装教程

这篇博客详细记录了在Ubuntu16.04上安装Caffe、CUDA8.0、CUDNN5的全过程,包括手动安装显卡驱动、CUDA的安装、CUDNN的配置,以及Matlab、OpenCV的安装和Caffe的编译。此外,还提供了关键步骤的注意事项和错误解决方法。
摘要由CSDN通过智能技术生成

网络上有很多的caffe相关教程,不过博客的质量大小不一,也导致博主走了很多的弯路,不过总算是配置出来,接下来我就将自己的详细配置过程总结如下:

首先,必须强调一下,在安装caffe之前一定要明确自己的电脑配置,明确自己caffe代码所对应的各文件相关版本,这里最常用的就是**【ubuntu16.04+caffe+GPU+cuda8.0+cudnn5】**。
接下来,列举一下我的电脑配置:

  1. 系统:Ubuntu16.04
  2. 显卡:GTX 1080 8G
  3. 内存:16G
  4. 环境:NVIDIA390.48驱动,CUDA8.0,cudnn5.1,opencv3.1.0
    ** 文件打包下载链接:链接:https://pan.baidu.com/s/1ByKYP3-CaC1BJWM8z2gu6w 提取码:spmt
    如果配置和我的一样可直接,百度云下载所有文件包】** ,百度链接如果无效,可以查看github网址:。如果还不行可以直接留言给我,我会及时回复。

一、手动安装显卡驱动

# 删除原有的NVIDIA驱动程序,如果没有安装过,可以忽略
sudo apt-get remove –purge nvidia*
首先,需要屏蔽开源驱动nouveau,先open in Terminal。
 sudo gedit /etc/modprobe.d/blacklist.conf

在最下方按下回车,另起一行加入两行代码:

blacklist nouveau
options nouveau modeset=0

保存save,在Terminal终端更新内核命令

sudo update-initramfs -u

好了以后,重启电脑。重启之后,可以查看nouveau有没有运行。没输出则代表禁用生效

lsmod | grep nouveau    
接下来,开始下载和安装显卡驱动

因为需要使用GPU,所以要先查看自己的显卡驱动,NIVIDIA官网:http://www.nvidia.com/Download/index.aspx?lang=en-us ,选择电脑匹配的显卡驱动,然后下载,附上下载教程【注意是对应linux版本】:https://jingyan.baidu.com/article/6b182309f99e6dba58e159bb.html
在这里插入图片描述
下载好后,将其放在主文件下(或者说是 /home下):

  1. 在键盘中,同时按Ctrl + Alt + F1到控制台,关闭当前图形环境。
  2. 输入自己的用户名及密码。
  3. 输入:sudo service lightdm stop
  4. 开始安装驱动,cd /home/用户名,也就是进入刚刚下载好的驱动所在文件夹(下好的驱动文件放在home 或者叫主文件夹下)。
  5. 安装启动:
sudo chmod a+x NVIDIA-Linux-x86_64-390.48.run   #这里的390.48换成你对应的版本
sudo ./NVIDIA-Linux-x86_64-390.48.run –no-opengl-files -no-x-check -no-nouveau-check
  1. 重新启动图形环境:sudo service lightdm start
  2. 最后测试是否安装成功:输入nvidia-smi ,如果出现此界面,则说明安装成功。

在这里插入图片描述

二、安装CUDA8.0

cuda官方下载地址为: https://developer.nvidia.com/cuda-downloads ,如图:
在这里插入图片描述
下载完成后,解压到你指定的目录,然后,cd切换到你指定的目录输入:

sh cuda_8.0.44_linux.run --override
安装过程中,输入 f 进行翻页,会出现许多的可选项,这时需要看清每一步,根据提示输入,分别如下:

1 输入accept接受条款
2 输入n不安装nvidia图像驱动,之前已经安装过了//此处一定要选择n
3 输入y安装cuda 8.0工具
4 回车确认cuda默认安装路径:/usr/local/cuda-8.0
5 输入y用sudo权限运行安装,输入密码
6 输入y或者n安装或者不安装指向/usr/local/cuda的符号链接
7 输入y安装CUDA 8.0 Samples,以便后面测试
8 回车确认CUDA 8.0 Samples默认安装路径:

然后,添加环境路径:

sudo gedit ~/.bashrc  //然后,末尾添加以下三行
export CUDA_HOME=/usr/local/cuda-8.0    
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH   
export PATH=/usr/local/cuda-8.0/bin:$PATH

添加完成后,使用source让其生效。

source ~/.bashrc

使用cuda的例子来测试是否安装成功,若得到如下的输出,则为安装成功:

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

在这里插入图片描述

三、安装cudnn5.1

首先,从官网下载工具包(不过好像下架了):https://developer.nvidia.com/rdp/cudnn-download ,也可以从文章开始部分楼主分享的百度云盘中下载。
在这里插入图片描述

这里将下载的tgz文件放到 /home/Documents目录下,进入该目录并解压,建立软链接,如下所示:

cd ./Download/
tar -xvzf cudnn-8.0-linux-x64-v5.1.tgz   
sudo cp ./cuda/include/cudnn.h /usr/local/cuda/include 
sudo cp ./cuda/lib64/lib* /usr/local/cuda/lib64
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5
sudo ln -sf libcudnn.so.5.1.5 libcudnn.so.5
sudo ln -sf libcudnn.so.5 libcudnn.so
sudo ldconfig

四、matlab的安装与配置

这里,本人使用的matlab版本是:R2014b_glnxa64_withcrack.iso,提供一个matlab下载地址 http://pan.baidu.com/s/1qYJ9tNm ,也可以自行百度。

  1. 首先,在主目录/home下,新建一个matlab_iso文件夹,挂载iso:
mkdir matlab_iso //主目录
// 然后cd到,matlab.iso所在文件下
sudo mount -o loop R2014b_glnxa64_withcrack.iso  ~/matlab_iso
  1. 开始安装:
cd ~/matlab_iso
sudo ./install
  1. 选择不联网安装,这个时候需要断一下网络,否则密钥会进不去。
  2. 密钥输入,29797-39064-48306-32452
  3. 激活:选择”license.lic”文件进行激活(在crack文件夹下面)
  4. 将libmwservices.so复制到/usr/local/MATLAB/R2014b/bin/glnxa64中:
sudo cp libmwservices.so /usr/local/MATLAB/R2014b/bin/glnxa64/libmwservices.so

五、opencv3.1的安装

opencv3.1版本的下载链接,http://opencv.org/downloads.html
安装必需的依赖:

sudo apt-get update 
sudo apt-get install -y build-essential cmake git pkg-config 
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libhdf5-serial-dev protobuf-compiler 
sudo apt-get install -y libatlas-base-dev 
sudo apt-get install -y --no-install-recommends libboost-all-dev 
sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev 
sudo apt-get install -y python-pip 
sudo apt-get install -y python-dev 
sudo apt-get install -y python-numpy python-scipy

sudo apt-get install build-essential  
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev  
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

然后,解压下载的opencv文件并进入该目录。

cd opencv-3.1.0
mkdir build
cd build 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

** 期间可能会卡在ippcv的下载中,Ctrl + c中断后,可以 ippicv_linux_20151201.tgz https://pan.baidu.com/s/19KeSKnGRBFtUCLnUYRKPxw 下载。将下载的文件替换掉 OpenCV-3.1.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b下的同名文件。 **

make -j4
sudo make install

make过程中,可能会出现了graphcuts.cpp的错误,进行如下修改

sudo vim ../modules/cudalegacy/src/graphcuts.cpp

将45行的#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER)修改为:
#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000)
然后再次运行,sudo make install 执行安装。

六、Caffe编译

cd ~
git clone https://github.com/BVLC/caffe.git    //从github上git caffe,也可以安装自己需要的caffe源代码

如果没有安装git,可以使用sudo apt-get install git 执行安装。

cd caffe
sudo cp Makefile.config.example Makefile.config 
sudo gedit Makefile.config
此时会修改caffe的编译配置,需要修改如下地方:

1 # USE_CUDNN := 1 修改成: USE_CUDNN := 1
2 # OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3
3 # WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER:=1
4 #USE_OPENCV := 0 修改成 USE_OPENCV :=1
5 #USE_LEVELDB := 0 修改为 USE_LEVELDB:=1
6 #USE_LMDB := 0 修改位 USE_LMDB :=1
7 //修改matlab目录
8 将MATLAB_DIR := /usr/local/MATLAB/R2014b
9 //最终要的修改 # Whatever else you find you need goes here.下面的
10 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
11 LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
12 修改为:
  INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
13 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的位置,所以需要更改这一路径

然后,修改Makefile文件:
sudo gedit Makefile
将 NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC ( C O M M O N F L A G S ) , 替 换 为 ‘ N V C C F L A G S + = − D F O R C E I N L I N E S − c c b i n = (COMMON_FLAGS),替换为 `NVCCFLAGS += -D_FORCE_INLINES -ccbin= (COMMONFLAGS)NVCCFLAGS+=DFORCEINLINESccbin=(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)`

然后编辑 /usr/local/cuda/include/host_config.h 将
#error – unsupported GNU version! gcc versions later than 5 are not supported!
在前头添加注释‘ // ’,即修改为
//#error -- unsupported GNU version! gcc versions later than 5 are not supported!

进行编译:

sudo make all -j8  
sudo make runtest -j8  

在这里楼主在编译sudo make runtest -j8时没有通过,可以尝试直接使用

make runtest -j8

若编译出现libcudart.so.8.0错误,则执行如下命令。

sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0
sudo ldconfig

如果成功编译,则会显示:
在这里插入图片描述

七、Matcaffe编译:

  1. 执行make matcaffe -j4
  2. 显示MEX completed successfully,表示编译matcaffe成功。
  3. 执行make mattest -j4 即运行matcaffe的测试程序,结果如图:

在这里插入图片描述

八、Pycaffe编译:

sudo make pycaffe -j4

这里当时出现了错误 (make: Nothing to be done for ‘pycaffe’.)
sudo make clean
sudo make pycaffe -j4

然后,make pycaffe之后,执行

sudo make distribute -j4
cd ~/Documents/caffe/python
for req in $(cat requirements.txt); do sudo  pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done 
cd ../
make pytest -j4   #进行测试

在这里插入图片描述

pycaffe编译成功后,使python的caffe接口永久生效,这样你就可以直接在python中,import caffe

sudo gedit /etc/profile      #profile最后添加: 
export PYTHONPATH=/root/$CAFFE_ROOT/python:$PYTHONPATH    #save保存
source /etc/profile

注意:
有一些python库没有安装,在import caffe测试时会出错,常见的库缺失错误:
ImportError: No module named skimage.io
ImportError: No module named scipy
ImportError: No module named google.protobuf.internal

yum install python-matplotlib.x86_64
pip install -U scikit-image
pip install scipy
easy_install protobuf

在这里插入图片描述

九、Mnist集测试

  1. 首先,下载mnist数据,假设当前路径为caffe根目录
sudo sh data/mnist/get_mnist.sh

运行成功后,在 data/mnist/目录下有四个文件:
train-images-idx3-ubyte: 训练集样本 (9912422 bytes)
train-labels-idx1-ubyte: 训练集对应标注 (28881 bytes)
t10k-images-idx3-ubyte: 测试集图片 (1648877 bytes)
t10k-labels-idx1-ubyte: 测试集对应标注 (4542 bytes

  1. 这些数据不能在caffe中直接使用,需要转换成LMDB数据
sudo sh examples/mnist/create_mnist.sh
  1. 可以通过 sudo gedit examples/mnist/lenet_solver.prototxt 来设置训练的相关参数
  2. 最后,运行实例
sudo time sh examples/mnist/train_lenet.sh

在这里插入图片描述

参考文章:
[1] https://blog.csdn.net/wf19930209/article/details/81877822
[2] https://www.cnblogs.com/LaplaceAkuir/p/6262632.html?utm_source=itdadao&utm_medium=referral

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值