> Ubuntu >

ubuntu16.04+gtx1060+cuda8.0+caffe安装教程

第一步:安装nvidia显卡驱动

由于是台式机,显示器屏幕比较大,所以刚装好Ubantu16.04系统后分辨率比较

低,看起来很不舒服,所以可以手动修改一下grub文件从而来提高分辨率,所以我们可以在终端输入

sudo vim/etc/default/grub

找到下面这几行:

# The resolution used on graphicalterminal

# note that you can use only modeswhich your graphic card supports via VBE

# you can see them in real GRUB withthe command 'vbeinfo'

# GRUB_GFXMODE=640×480

往最后添加一行设置自己想要的分辨率,推荐1920x1080,只需要增加下面一行:
GRUB_GFXMODE=1920×1080 #这里分辨率自行设置

理论上设置完以后只需要在终端编辑

sudo update-grub

从而进行更新grub,重新启动Ubuntu系统后就能生效了,但是,我们现在还没有安装显卡驱动,所以该次分辨率设置不能生效,所以现在我们应该做的工作是下载显卡驱动进行安装。

我们打算直接使用Ubuntu命令进行安装,要使用Ubuntu的命令进行安装,首先要做的就是更新Ubuntu16.04的源,终端输入

cd /etc/apt/     #进入Ubuntu高级软件包工具目录

sudo cp sources.list sources.list.bak     #先备份原来的源

sudo vi sources.list       #编辑sources.list

把下面的源添加到source.list中:

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial mainrestricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-securitymain restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updatesmain restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposedmain restricted universe multiverse

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backportsmain restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial mainrestricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/xenial-security main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updatesmain restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/xenial-proposed main restricted universe multiverse

deb-src http://mirrors.ustc.edu.cn/ubuntu/xenial-backports main restricted universe multiverse

最后更新源和更新已安装的包,在终端中输入:

sudo apt-get update

sudo apt-get upgrade

我们继续来使用add-apt-repository脚本添加英伟达驱动ppa到当前库中并且自动导入公钥。

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

回车后继续

sudo apt-get update

sudo apt-get install nvidia-367

sudo apt-get install mesa-common-dev

sudo apt-get install freeglut3-dev

安装完成后就可以重启系统,然后GTX1060显卡驱动就会生效,由于先前我们设置好了分辨率,所以重新启动后我们的显示器显示的图像就会舒服多了。

重启完以后进行测试:
终端输入:

nvidia-smi
出现下面这种效果就表示安装成功了。



第二步:cuda安装

所需文件:cuda_8.0.27_linux.run、cudnn-8.0-linux-x64-v5.1.tgz

我的百度云盘链接:http://pan.baidu.com/s/1boC8NAB 密码:sbzk



安装cuda8.0

进入到cuda_8.0.27_linux.run所在目录,在终端执行命令如下:

sh cuda_8.0.27_linux.run -override

按下上面命令后,安装程序随即便启动了。接下来执行这几步操作:

1、一直按空格到最后,然后输入accept接受条款。

2、输入n不安装nvidia图像驱动,因为我们先前已经安装过了。

3、输入y安装cuda8.0工具。

4、回车确认cuda默认安装路径:/user/local/cuda-8.0。

5、输入y用sudo权限运行安装,输入密码。

6、可以输入y或者n安装或者不安装指向/usr/local/cuda的符号链接。

7、输入y安装CUDA8.0Samples,以便后面进行测试。

8、回车确认CUDA8.0Samples默认安装路径:/home/自己的用户名,该安装路径测试完就可以删除了。



安装cudnnv5.1

先进入到cudnn-8.0-linux-x64-v5.1.tgz所在目录,然后解压该文件:

tar zxvf cudnn-8.0-linux-x64-v5.1.tgz

解压后会产生一个cuda目录,进入cuda/include目录下,执行如下操作:

cd cuda/include/

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

再进入cuda/lib64目录下,执行如下操作:

cd ../lib64     #打开lib64目录

sudo cp lib* /usr/local/cuda/lib64/  #复制库文件

给所有用户增加这些文件的读权限

sudo chmod a+r/usr/local/cuda/include/cudnn.h

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

 

建立软链接

首先在终端输入如下命令:

cd /usr/local/cuda/lib64/

sudo rm -rf libcudnn.so libcudnn.so.5

sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5

sudo ln -s libcudnn.so.5 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

最后在终端输入sudo ldconfig使链接生效
ldconfig原理为如下链接

链接:http://blog.csdn.net/huangjin0507/article/details/50372721



注意:我在执行ldconfig命令时候遇到下面的错误:

/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 不是符号连接
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 不是符号连接

原因为:系统找的是一个符号连接,而不是一个文件。这应该是个bug。

解决方法:

1、对这两个文件更名

2、重新建立符号连接

在终端执行下面的命令

sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1

/usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39 /usr/lib32/nvidia-375/libEGL.so.1



cuda Samples测试

打开cuda 8.0 Samples默认安装路径,终端输入

cd /home/username/NVIDIA_CUDA-8.0_Samples  #username是自己的用户名

sudo make all -j4  #4核



小技巧:

查看CPU核心数:grep "cpu cores" /proc/cpuinfo|uniq

查看CPU个数:grep "physical id"/proc/cpuinfo|sort -u|wc -l

每个物理CPU上逻辑CPU个数:grep "siblings"/proc/cpuinfo|uniq

用上面的命令查看自己电脑的CPU核数。



执行完上面的make all –j4命令后会出现“unsupported GNU version! gcc versions later than 5.3 arenot supported!”的错误。这是由于GCC版本过高导致的。

解决办法:

终端执行如下命令

cd /usr/local/cuda-8.0/include

sudo cp host_config.h host_config.h.bak

sudo gedit host_config.h

接着可以通过ctrl+f寻找有“5.3”的地方,因为该文件只有一处5.3,如下

# if __GNUC__ > 5 || (__GNUC__ == 5&& __GNUC_MINOR__ > 3)

#error -- unsupported GNU version! gccversions later than 5.3 are not supported!

将两个5改成6,即

#if __GNUC__ > 6 || (__GNUC__ == 6&& __GNUC_MINOR__ > 3)

保存退出,继续在终端输入

cd /home/username/NVIDIA_CUDA-8.0_Samples  #username是自己的用户名

sudo make all -j4  #4核

等待编译完成

完成后继续向终端输入

cd bin/x86_64/linux/release

./deviceQuery

然后出现如下场景,表示已经成功安装了cuda了:



三、依赖包安装

终端输入

sudo apt-get install build-essential #必要的编译工具依赖

sudo apt-get install libprotobuf-devlibleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install --no-install-recommendslibboost-all-dev

sudo apt-get install libatlas-base-dev

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



四、安装python的pip和easy_install

终端输入

cd

wget --no-check-certificatehttps://bootstrap.pypa.io/ez_setup.py

sudo python ez_setup.py --insecure

wget https://bootstrap.pypa.io/get-pip.py

sudo python get-pip.py



五、安装科学计算和python所需的部分库

终端输入

sudo apt-get install libblas-devliblapack-dev libatlas-base-dev gfortran python-numpy



六、安装git,拉取源码

终端输入

sudo apt-get install git

git clone https://github.com/BVLC/caffe.git



七、安装python依赖

先执行命令

cd /home/username/caffe/python  #username是你自己的用户名

终端输入

sudo apt-get install python-pip 安装pip

sudo su

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

最后按Ctrl+D退出sudo su模式



八、编译caffe

终端输入

cd /home/pawn/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的错误

接着在终端输入

make all -j4

make过程中出现找不到lhdf5_hl和lhdf5的错误,

解决方案:

在计算机中搜索libhdf5_serial.so.10.1.0,在终端执行如下命令:

sudo find -name libhdf5_serial.so.10.1.0

找到后进入所在目录下

sudo ln libhdf5_serial.so.10.1.0 libhdf5.so

sudo ln libhdf5_serial_hl.so.10.0.2libhdf5_hl.so

最后在终端输入sudo ldconfig使链接生效

原终端中输入make clean清除第一次编译结果

再次输入make all -j4重新编译

最后在终端输入

make test -j4

make runtest -j4

make pycaffe -j4

make distribute 生成发布安装包

这时候可以测试一下python,终端输入

cd /home/pawn/caffe/python

python

import caffe

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



九、设置python路径

在使用make pycaffe -j4命令完成caffe的python接口生成之后,还需要将python接口的路径进行设置。

终端执行

gedit ~/.bashrc

来对路径进行设置,在文件最后一行加入路径:

exportPYTHONPATH=/home/startag/caffe/python/:/home/startag/caffe/python/caffe/

注销或者重启,路径生效。

解释:PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找。

敲下import urllib后,Python解释器会逐个从上面的路径列表选出一个路径然后搜索urllib模块直到找到为止。这里最后在 D:\Python3\lib 下找到(ubuntu自带python3)





十、mnist测试

下载mnist数据集,终端输入

cd /home/pawn/caffe/data/mnist/

/get_mnist.sh #获取mnist数据集

在/home/pawn/caffe/data/mnist/目录下会多出训练集图片、训练集标签、测试集图片和测试集标签等4个文件

mnist数据格式转换,终端输入

cd /home/pawn/caffe/

./examples/mnist/create_mnist.sh

必须要在第一行之后运行第二行,即必须要在caffe根目录下运行create_mnist.sh

此时在/caffe/examples/mnist/目录下生成mnist_test_lmdb和mnist_train_lmdb两个LMDB格式的训练集和测试集

LeNet-5模型描述在/caffe/examples/mnist/lenet_train_test.prototxt

Solver配置文件在/caffe/examples/mnist/lenet_solver.prototxt

训练mnist,执行文件在/caffe/examples/mnist/train_lenet.sh

终端输入

cd /home/pawn/caffe/

./examples/mnist/train_lenet.sh



  (责任编辑:IT)