Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

时间:2022-07-29 06:29:25

参考博客:
Ubuntu16.04 Caffe 安装步骤记录(超详尽):http://blog.csdn.net/yhaolpz/article/details/71375762
ubuntu16.04安装caffe:http://blog.csdn.net/u011272513/article/details/52103453#

环境说明:

1)Ubuntu 16.04:ubuntu-16.04.3-desktop-amd64.iso
2)采用CUDA 8.0 :cuda_8.0.44_linux.run
3)Cudnn 6.0:cudnn-8.0-linux-x64-v6.0.tgz
4)TensorFlow
5)Caffe
6)Python 2.7
7)pip 9.0.1

具体安装步骤:

一:CUDA 8.0安装

(包括NVIDIA显卡驱动和CUDA库文件)
通过英伟达安装包来分别安装库的驱动程序而不是使用apt-get 来安装。如果只有CPU,则可以跳过这步。
1)打开终端,加入官方PPa源:

sudo  add-apt-repository ppa:graphics-drivers/ppa

2)按enter键确认,之后更新软件库并安装最新驱动

    sudo apt-get update
    sudo apt-get install nvidia-367 nvidia-settings nvidia-prime

Note:该Ubuntu 镜像文件在sudo apt-get update 时报错,解决方法:
输入命令:sudo apt-get purge libappstream3
之后再次执行 sudo apt-get update命令就正常了。

3)安装完成后,通过命令查看是否安装成功

     nvidia-settings

此时,安装完成后,要重启电脑,有如下效果则安装完成,否则就说明安装有问题,尝试关闭UEFI保护试试。Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

4)从官网上下载CUDA 8.0文件,下载cuda_8.0.44_linux.run文件,将其放至~/CUDA文件夹下,cd命令进入该文件所在目录,进行MD5检验,确保安装包正常。

  sudo md5sum cuda_8.0.44_linux.run

5)检验正确后,输入如下代码安装(第一行修改文件权限,第二行执行文件安装):

chmod 777 cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run  --override

Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

执行代码后,跳出相关信息,左下方出现–更多–(0%) 这样,
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装
一直按Enter键直到跳到100%结束退出,接下来要求输入相关配置命令,如下图,注意别弄错了,第二行配置询问是否要安装NVIDIA图像驱动器时,一定要选n,否则系统会报错,具体如下图:
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装
安装完成后出现如下说明安装正确:
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

二、Cudnn 6.0安装
注意下载的版本为:cudnn-8.0-linux-x64-v6.0.tgz
其中CUDA对应的5.1版本,在后面安装TensorFlow时会出现问题。
1)进入文件所在目录进行解压:

tar zxvf cudnn-8.0-linux-x64-v6.0.tgz

2)解压后有个cuda文件,内有include 和 lib64两个文件,进入include文件夹,执行如下命令:

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

再cd切换进lib64文件夹,执行如下命令:

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

3)进入复制后的动态链接库进行新的链接:

cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6
sudo ln   -s  libcudnn.so.6.0.21  libcudnn.s.6
sudo ln   -s  libcudnn.so.6  libcudnn.so

注意:此处Cudnn版本不一样,后面的序号也会有差别,建议用补全键进行文件补全。
4)设置环境变量和动态链接库:

sudo gedit /etc/profile

在打开的文件末尾加上(“=”前后不要有空格)

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

保存之后创建链接文件:

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

按下键盘i进行编辑:

/usr/local/cuda/lib64

按下Esc键,输入:wq保存退出。
最后在终端输入以下命令使该链接生效:

sudo ldconfig

5)使用sample里面的例子来测试还需要编译。进入用例文件进行编译(注意执行第二部命令时需要较长时间是正常现象):

cd /usr/local/cuda/samples  
sudo make all -j4  
cd /usr/local/cuda/samples/bin/x86_64/linux/release  
sudo ./deviceQuery  

执行命令后出现如下信息,则说明显卡驱动和cuda安装成功。
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

三、TensorFlow安装
直接运行命令:

sudo pip install pip --upgrade  //对pip进行版本升级
sudo pip install tensorflow-gpu  //安装GPU版的tensorFlow

确认是否安装成功:

python
import tensorflow as tf

如下图片:
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

注意,Ubuntu16.04,默认pip版本为8.0,而TensorFlow安装需要版本为pip 9.0.1
另外,由于pip安装为国外文件下载,所以下载速度会很慢,在安装过程中,注意换源或则执行如下方法:
报错如下:
ReadTimeoutError: HTTPSConnectionPool(host=’pypi.python.org’, port=443): Read

解决办法一:
加大超时时间:pip --default-timeout=100 install -U pip

解决办法二:
在~目录下,建一个.pip的目录:

mkdir .pip
cd .pip
gedit pip.conf

在文件中写入以下内容,保存并关闭(选用的豆瓣源):

[global]
index-url = http://pypi.douban.com/simple
trusted-host = pypi.douban.com#没有这句会包warning
disable-pip-version-check = true #版本不检查
timeout = 120#超时时间设置 

四、caffe安装
1.安装各种依赖包

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 -y libopencv-dev  

2.下载caffe

cd ~
git clone https://github.com/BVLC/caffe.git //从github上git caffe 

3.安装配置caffe

cd caffe    //打开到刚刚git下来的caffe  
cp Makefile.config.example Makefile.config //make指令只能make Makefile.config  
sudo gedit Makefile.config      //打开Makefile.config文件  

4.配置文件修改(看英文提示根据具体修改):
1)应用cudnn

#USE_CUDNN :=1
修改成: 
USE_CUDNN := 1

2)应用opencv版本

#OPENCV_VERSION := 3 
修改为: 
OPENCV_VERSION := 3

3)使用python接口

#WITH_PYTHON_LAYER := 1 
修改为 
WITH_PYTHON_LAYER := 1

4)修改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       

5)修改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

6)最后进入caffe目录,进行编译

cd caffe
make all -j4
make test -i4
make runtest
make pycaffe

正确结果如下:
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

如果编译没有报错,则基本没有问题。

7)相关库安装:
首先要安装python接口依赖库,在caffe根目录的python文件夹下,有一个requirements.txt的清单文件,上面列出了需要的依赖库,安装这个清单安装就可以。
在安装scipy库的时候,需要fortran编译器,如果没有这个编译器就会报错,因此,可以先安装以下。
首先进入 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, 没有安装成功的,会继续安装。

注意如果有如下问题:
No module named caffe,
解决办法一
终端中输入

sudo gedit /etc/profile

在最后添加:

export PYTHONPATH=/home/yp/caffe/python:$PYTHONPATH

保存退出后,在终端输入:

source /etc/profile

解决办法二:

sudo gedit ~/.bashrc

#add the folling line

export PYTHONPATH=/path/to/caffe-master/python:$PATHONPATH

source ~/.bashrc

解决办法三:
每次写代码的时候,都直接将caffe的路径加入即可,只要caffe安装成功,其他都是小问题

import sys
sys.path.append('/path/to/caffe-master/python')
import caffe

8)安装jupyter:

sudo pip install jupyter

安装完成后,运行notebook

jupyter notebook

ipython notebook

出现如下画面:
Ubuntu 16.04 安装CUDA8.0+Cudnn6.0+TensorFlow+Caffe安装

9)验证是否安装正确:

python
import caffe