Ubuntu 16.04系统下CUDA8.0配置Caffe教程

由于最近安装了Ubuntu 16.04,本文教程的特点是不需要降级gcc的版本,毕竟cuda8.0已经支持gcc5以上(默认不支持,实际支持)。

本文是在参考caffe官网教程以及http://www.linuxidc.com/Linux/2015-07/120449.htm结合自己总结经验而来,对此表示感谢。

Ubuntu 14.04安装Nvidia CUDA7.5并搭建Python Theano深度学习开发环境http://www.linuxidc.com/Linux/2015-09/123562.htm

Ubuntu下CUDA(含GPU卡驱动)安装过程http://www.linuxidc.com/Linux/2015-07/120456.htm

Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明  http://www.linuxidc.com/Linux/2015-04/116444.htm

Ubuntu 14.04 安装配置CUDA  http://www.linuxidc.com/Linux/2014-10/107501.htm

Ubuntu 12.04配置NVIDIA CUDA5.5实录  http://www.linuxidc.com/Linux/2014-10/107502.htm

Ubuntu安装Theano+CUDA  http://www.linuxidc.com/Linux/2014-10/107503.htm

关于Ubuntu 12.04 下 CUDA5.5 的安装请参看如下链接 Ubuntu 12.04 安装 CUDA-5.5

Ubuntu 16.04系统下CUDA7.5配置Caffe教程 http://www.linuxidc.com/Linux/2016-07/132859.htm

1. 所需文件下载

1.1 Ubuntu16.04在官网下载,然后在windows下用UltraISO制作,相关文章搜索有一大片,此处不再赘述。

1.2 cuda8.0下载,下载的版本是ubuntu15.04的run文件,个人感觉比较方便。

1.3 cudnn5.1下载,进去之后如果有注册过nvidia的账户直接点击download,否则需要注册一个账户,注册完之后有一个调查,随便选几个钩就可以,然后下一步是接受条款开始就可以下载了。

1.4 caffe下载就在官方的github下载就可以了

2. 显卡驱动安装 

2.1 第一种方法是直接在ubuntu系统设置,软件和更新里面,选择中国的服务器源刷新之后,点击附加驱动选项,在Nvidia Corporation选择最新版本,然后点击应用更改,下载安装完之后重启。

2.2 第二种方法是去官方下载好驱动的run文件,选择对应显卡型号下载。然后关机把显示器插到集成显卡接口上,或者终端下

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

输入密码后在最后一行编辑上

blacklist nouveau

Ctrl +C保存后终端输入

sudo update-initramfs -u

重启之后在界面按Ctrl+Alt+F2,输入root以及密码,然后

service lightdm stop

sh 你自己的驱动文件的完整路径,默认选项就可以安装了,安装后重启

3. Cuda8.0安装 

3.1 以文件名为cuda.run为例,终端下输入

sh cuda.run --override 启动安装程序,此处有大量的条款,一路空格到最后 输入accept,依次输入n(不安装显卡驱动),然后一路y回车,有一个地方需要输入密码,还有两个地方确认安装路径,直接回车即可,完成安装,默认安装路径是/usr/local

3.2 cudnn安装

将下载下来(注:请使用linux系统下载,不然会是其他文件, nvidia也是够了)的cudnn-5.1-linux-x64-v4.0-prod.tgz 解压之后,解压后的cuda文件夹先打开里面的include文件夹,空白右键在终端打开输入:

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

cd ~/cuda/lib64

sudo cp lib* /usr/local/cuda/lib64/

继续更新文件链接

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so libcudnn.so.4

sudo ln -s libcudnn.so.4.0.7 libcudnn.so.4

sudo ln -s libcudnn.so.4 libcudnn.so

然后设置环境变量

sudo gedit /etc/profile

在末尾加入

PATH=/usr/local/cuda/bin:$PATH

export PATH

保存之后创建链接文件

sudo vim /etc/ld.so.conf.d/cuda.conf

键盘按a进入编辑状态,添加文字

/usr/local/cuda/lib64

然后按esc,输入:wq保存退出。

终端下接着输入

sudo ldconfig

使链接生效

4. 生成Cuda Sample测试 

首先在此之前先把需要的依赖包都安装好,为接下来make caffe做准备 (其中包括ATLAS 也可以选择装MKL或者OpenBLAS)

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 libatlas-base-dev

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

然后开始make samples ,终端下

cd /home/gomee/NVIDIA_CUDA-7.5_Samples

sudo make all -j4

我是4核电脑所以用了j4,如果不是cudnn5.1正常情况下肯定会报错“unsupported GNU version! gcc versions later than 4.9 are not supported!”,原因就是这个cuda不支持gcc5.0以上,终端运行

cd /usr/local/cuda-7.5/include

cp host_config.h host_config.h.bak

sudo gedit host_config.h

Ctrl+F寻找有”4.9”的地方,应该是只有一处,在其上方的

#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 9)将两个4改成5,保存退出,继续

cd /home/gomee/NVIDIA_CUDA-7.5_Samples

sudo make all -j4

这就应该开始make了,此处大约有5、6分钟。完成之后

cd /home/gomee/NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux

./deviceQuery

最后会出现类似以下的信息

CUDA Device Query (Runtime API) version (CUDART static linking)

Compute Mode:

< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 8.0, NumDevs = 1, Device0 = GeForce GTX 960

Result = PASS

这就说明成功了。

5. Python配置 

将之前github下载的caffe压缩文件解压缩到任一目录,然后安装python

python的版本安装有两种方式:

第一是直接安装anaconda,去官网下载 ,选择linux 64bit 2.7版本下载安装,anaconda安装方便但是需要在最后的make配置文件中更改python包含路径。

第二种方法就是使用原生的python2.7版本,终端下

sudo apt-get install python-pip 安装pip

这里我们用pip安装一些python需要的依赖包,不过为了避免各种问题,也可以通过apt-get安装

sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose

以caffe默认解压到/home/user(你的用户名)/ ,文件夹名名称caffe为例

cd /home/user/caffe/python

sudo su

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

这里用pip安装可能速度很慢,很可能下载好几个小时,推荐用清华大学的pip源临时安装,所以命令改为如下:

for req in $(cat requirements.txt); do pip install -i https://pypi.tuna.tsinghua.edu.cn/simple $req; done

这里如果第一次有很多红字错误,建议再运行几遍指导安装成功,对于黄字提示无需理会,可能是pip版本需要更新。

6. Caffe编译过程

接下来要进入最后的步骤了,终端中

cd /home/user/caffe

cp Makefile.config.example Makefile.config

gedit Makefile.config

将USE_CUDNN := 1 取消注释

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include后面打上一个空格 然后添加/usr/include/hdf5/serial 如果没有这一句可能会报一个找不到hdf5.h的错误

PYTHON_INCLUDE := /usr/include/python2.7 \

  /usr/lib/python2.7/dist-packages/numpy/core/include先不做更改。

如果是需要生成matlab的caffe wrapper 请取消注释MATLAB_DIR然后替换为自己的目录

说一下提前会出现的问题:

第一,make过程中出现比如 string.h ‘memcy’ was not declared in this scope的错误是由于gcc编译器版本太新,解决方法是打开makefile搜索并替换

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 为 NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 保存退出

第二,在make过程中还会报一个ld找不到libhdf5 和libhdf5_hl的链接问题,这个原因可能也是因为hdf5的问题,首先看/usr/lib/x86_64-linux-gnu 目录下有没有libhdf5.so和libhdf5_hl.so,如果有的话,查看属性是否有正确的链接(正常情况下应该是没有这两个文件),然后右键在终端中打开

sudo ln libhdf5_serial.so.10.1.0 libhdf5.so

sudo ln libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

注意,10.1.0和10.0.2可能不同电脑安装版本不同,注意看当前目录下存在的文件然后

sudo ldconfig 生效

如果没有的话

将# 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的位置,所以需要更改这一路径

cd /usr/lib/x86_64-linux-gnu

\\然后根据情况执行下面两句:

sudo ln -s libhdf5_serial.so.10.1.0 libhdf5.so

sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_hl.so

接下来就是直接编译的过程

cd /home/user/caffe

make all -j4

make test -j4

make runtest

make pycaffe

make matcaffe

如果编译没报错正常的话,基本就没问题了。测试python打开

cd /home/user/caffe/python

python

import caffe

如果不报错就说明编译成功

测试matlab打开./caffe/matlab/+caffe/private,看有没有生成一个caffe的mex文件,可以运行+test文件夹里面的程序测试。

小问题:

在使用python接口的时候,可能会报一个什么错误(我给忘记了–!),对了是’Mean shape incompatible with input shape.’的错误,处理方法是python/caffe文件夹,编辑io.py文件,将

if ms != self.inputs[in_][1:]:

raise ValueError(‘Mean shape incompatible with input shape.‘)

替换为

if ms != self.inputs[in_][1:]:

print(self.inputs[in_])

in_shape = self.inputs[in_][1:]

m_min, m_max = mean.min(), mean.max()

normal_mean = (mean - m_min) / (m_max - m_min)

mean = resize_image(normal_mean.transpose((1,2,0)),in_shape[1:]).transpose((2,0,1)) * (m_max - m_min) + m_min

然后make clean再重新make

7. 总结 

  至此,Ubuntu16.04下编译Caffe的教程就结束了

时间: 2024-10-15 15:17:14

Ubuntu 16.04系统下CUDA8.0配置Caffe教程的相关文章

ubuntu 16.04源码编译和配置caffe详细教程 | Install and Configure Caffe on ubuntu 16.04

本文首发于个人博客https://kezunlin.me/post/b90033a9/,欢迎阅读! Install and Configure Caffe on ubuntu 16.04 Series Part 1: Install and Configure Caffe on windows 10 Part 2: Install and Configure Caffe on ubuntu 16.04 Guide requirements: NVIDIA driver 396.54 CUDA 8

Ubuntu 16.04系统下开机提示“无法应用原保存的显示器配置”

开机启动Ubuntu时,提示以下错误,部分截图如图: 解决方法: 按住Ctrl+Alt+T开启终端,输入rm .config/monitors.xml,回车,然后重启Ubuntu即可解决:如图

Ubuntu 16.04系统下软件中心Software闪退解决办法

按住Ctrl+Alt+T打开终端输入: sudo apt-get update //更新 sudo apt-get dist-upgrade //升级 sudo apt-get install --reinstall software-center //重新安装 重新打开软件中心Software即可解决闪退问题:

Ubuntu 16.04系统挂载4T硬盘

问题描述: Ubuntu 16.04系统,系统盘为240G固态硬盘,还有1T机械硬盘,现要再添加一个4T硬盘. 问题分析: 使用GTP对硬盘进行分区并挂载硬盘的方法,一般而言服务器上挂载的硬盘都是比较大的,传统的对硬盘进行分区需要在终端敲sudo fdisk进行操作 但是,当挂载的硬盘的容量大于2T的时候,是无法通过sudo fdisk进行分区的,这个时候必须要进行GPT进行分区,并且设置为开机启动. fdisk 分区,硬盘超过2T,只能生成2T分区. $ sudo fdisk /dev/sda

在ubuntu 16.04系统里解决软件依赖问题,如何在ubuntu中安装zlib和zlib-dev

在ubuntu 16.04系统里解决软件依赖问题,一般情况可以依靠安装aptitude软件包来解决:(1)sudo apt-get install aptitude(2)sudo aptitude install zlib1g-dev但是这个软件也通过这种方式解决不了,因为在ubuntu里,zlib叫zlib1g,相应的zlib-devel叫zlib1g.dev.默认的安装源里没有zlib1g.dev.要packages.ubuntu.com因此应该先安装(3) sudo apt-get ins

Ubuntu 16.04安装QQ国际版图文详细教程

      因工作需要,我安装了Ubuntu 16.04,但是工作上的很多事情需要QQ联系,然而在Ubuntu上的WebQQ很是不好用,于是在网上搜索了好多个Linux版本的QQ,然而不是功能不全,就是界面丑到爆,要么就是不稳定:最后,找到了个人认为最好用的QQ-WineQQ国际版. 说明:一开始,我在Ubuntu 16.04下安装的QQ版本是Wineqq2013SP6-20140102-Longene,但后来发现这个版本QQ在linux下问题很多,比如不能 用键盘输入密码,QQ表情使用失灵,有

Ubuntu 16.04系统布署小记

前段时间趁着双11打折,又将阿里云主机续费了3年.之前布署的系统是Ubuntu 12.04,从系统发布到现在也有四年半了,其官方支持的生命周期也将止于明年春,且这在几年里出现了很多新的事物,我也需要跟上时代的步伐,于是着手将整个环境更新至最新的Ubuntu 16.04,现将布署过程记录如下 系统布署 环境布署 应用布署 10. 停止服务器实例,选择更换系统盘,选择Ubuntu 16.04 64bit,重启实例 20. 挂载虚拟内存 mkdir /swap && cd /swap &

Ubuntu 16.04 TLS下安装dotnet异常处理

从官网下载Ubuntu 16.04 TLS iSO安装在hyper-V中一切正常,网络也连通.但在执行apt-get update时,发现不能连接北美的网站,在网上找到163源,在/etc/apt/source.list中进行配置.按微软官网https://www.microsoft.com/net/core#linuxubuntu 进行配置,前面都正常执行,但在最后一步:apt-get install dotnet-sdk-2.0.0时,出现相关依赖包不能被安装的错误,比如:dotnet-ru

Ubuntu 14.04(x64) 安装cuda8.0

由于之前已经在Ubuntu 14.04 x64上面安装cuda7.0+caffe, 并且已经配置好,caffe也已经跑通. 但是最近需要使用Torch,而Torch对cuda的要求是8.0,因此决定对cuda的版本进行升级,以满足Torch平台的需求. 而最新版的caffe也已经支持cuda8.0. 话不多说,开始安装cuda8.0. 显卡:GeForce GTX TITAN X 系统:Ubuntu 14.04(x_64) CUDA:cuda_8.0.61_375.26_linux.run cu