Ubuntu16.04 环境配置(cuda9.0+cudnn7.05+caffe)

  1. 安装Ubuntu16.04

    1. 下载Ubuntu16.04镜像文件
    2. 下载制作U盘启动的软件,我使用的软件是UUI,可以自行百度如何制作Ubuntu启动盘。
    3. 接下来就是设置U盘为第一启动项,没有什么注意点,下一步下一步就OK了。

基本知识需求:在进行深度学习环境配置的时候,最好是需要有一点Linux的基础,不然后面这些命令对你来说可能有点陌生,不知道具体这一步是干什么的,学习Linux基本命令时间也就一天就搞定了,如果你从未接触过,那请花一天时间去学学,网上有很多的教学视频,比如尚硅谷、黑马等,如果你有这个基础的话就接着往下看。

  1. 安装驱动

1.ubuntu 16.04默认安装了第三方开源的驱动程序nouveau,安装nvidia显卡驱动首先需要禁用nouveau,不然会碰到冲突的问题,导致无法安装nvidia显卡驱动,本文一下命令中sudo是非root用户使用超级管理权限时使用,若是root用户则不需要加。

 

2.编辑文件blacklist.conf

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

 

在文件最后部分插入以下两行内容

 

blacklist nouveau

 

options nouveau modeset=0

注意:若在进行编辑的时候发现按上下键时出现字母时,这个时候请先强制退出编辑模式,安装一下vim就搞定了,解决这问题的方式还有修改配置文件,过于复杂就不推荐了,我总结的就是直接安装vim方便实用。

强制退出命令:q!

安装vim:apt-get install vim

安装好以后重新编辑一下blacklist.conf文件,这个时候你会发现特别的好用;还有一种解决方案,那就是通过Ubuntu自带的文本编辑器,就像是Windows下的记事本一样的东西,通过命令用文本编辑器来编辑文件的命令是:

sudo gedit blacklist.conf

这个命令输入完成以后就打开了文件,然后修改也是可以的,适用于文件内容较多的文本。

 

3.更新配置(这一步是必须的哦

sudo update-initramfs -u

 

4.重启系统(一定要重启)

启动完成以后会发现界面变得很难看,这个时候不要着急,因为刚刚已经禁用驱动了,只需要进入系统界面以后,按住Ctrl+alt+f1进入命令行界面就OK了。

接着进行NVIDIA驱动安装,我这里的电脑使用的是GTX 1080TI的显卡,找到对应的显卡驱动就行了,如果不知道的话就使用系统推荐的。

输入命令:ubuntu-drivers devices

此时系统会返回适合本机器的显卡驱动,这里我选用nvidia 384,

安装命令:sudo apt-get install nvidia-384 nvidia-settings nvidia-prime

上面这条命令只需要替换版本号就好了。

安装完成以后有的电脑需要重启一下,我的没有重启。

       启用图形界面:sudo service lightdm start

       按Ctrl+alt+f1切换界面,发现界面现在又变好了,好像已经成功了,测试一下吧,输入命令:

    命令:lsmod | grep nvidia

Ubuntu16.04 环境配置(cuda9.0+cudnn7.05+caffe)

 

  1. 安装CUDA

下载地址:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=runfilelocal

根据自身情况下载,将其移动到/usr/local/目录下

移动命令或者复制命令都是可以的,比如mv 文件名称  /需要移动到的目录。

 

首先安装先关依赖包:

命令:sudo apt-get install g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libglu1-mesa libglu1-mesa-dev

 

添加可执行权限:

sudo chmod a+x cuda_9.0.176_384.81_linux.run

 

运行文件

./cuda_9.0.176_384.81_linux.run  开始安装

安装的时候在左下角会出现阅读协议的进度条,这时候只需要快速的敲击空格就好了,阅读完成以后会询问你是否同意协议,输入accept以后会出现多个问题,除了安装驱动选择n以外,其他的选择y,如果是出现询问目录则直接回车,具体问题与回答如下:

The NVIDIA CUDA Toolkit provides command-line and graphical

tools for building, debugging and optimizing the performance

of applications accelerated by NVIDIA GPUs, runtime and math

libraries, and documentation including programming guides,

user manuals, and API references.

 

 

Default Install Location of CUDA Toolkit

Do you accept the previously read EULA?

accept/decline/quit: accept

 

You are attempting to install on an unsupported configuration. Do you wish to continue?

(y)es/(n)o [ default is no ]: y

 

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?

(y)es/(n)o/(q)uit: n

 

Install the CUDA 9.0 Toolkit?

(y)es/(n)o/(q)uit: y

 

Enter Toolkit Location

 [ default is /usr/local/cuda-9.0 ]:

 

Do you want to install a symbolic link at /usr/local/cuda?

(y)es/(n)o/(q)uit: y

 

Install the CUDA 9.0 Samples?

(y)es/(n)o/(q)uit: y

 

Enter CUDA Samples Location

 [ default is /home/zhuang ]:

 

Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...

Installing the CUDA Samples in /home/zhuang ...

Copying samples to /home/zhuang/NVIDIA_CUDA-9.0_Samples now...

Finished copying samples.

 

===========

= Summary =

===========

 

Driver:   Not Selected

Toolkit:  Installed in /usr/local/cuda-9.0

Samples:  Installed in /home/zhuang

 

Please make sure that

 -   PATH includes /usr/local/cuda-9.0/bin

 -   LD_LIBRARY_PATH includes /usr/local/cuda-9.0/lib64, or, add /usr/local/cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root

 

To uninstall the CUDA Toolkit, run the uninstall script in /usr/local/cuda-9.0/bin

 

Please see CUDA_Installation_Guide_Linux.pdf in /usr/local/cuda-9.0/doc/pdf for detailed information on setting up CUDA.

 

***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.

To install the driver using this installer, run the following command, replacing <CudaInstaller> with the name of this run file:

    sudo <CudaInstaller>.run -silent -driver

 

Logfile is /tmp/cuda_install_7476.log

Signal caught, cleaning up

接着就是修改环境变量了,这里我们配置的是用户的环境变量,就相当于window下面配置系统环境变量和用户环境变量的区别。

修改环境变量:

    首先输入命令:vim ~/.bashrc

    在编辑状态下,文本末插入:

       export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

       使环境变量生效:source ~/.bashrc

编译

    这里需要确认gcc的版本,必须是6.0以下的,查看版本:gcc –v,若高过6.0就需要降低版本,这个百度一下就好了,卸载重装。

    首先切换到刚刚我们安装cuda的目录里面,命令:

       cd /usr/local/cuda-9.0/samples

       编译:

sudo make

       (到这一步的话就休息一下,编译大概需要10分钟到20分钟不等)

        验证:

           编译完成以后接着就进入bin/x86_64/linux/release/

           cd bin/x86_64/linux/release/

           执行命令:./deviceQuery

           这时候会出现一些信息,头部应该是关于你电脑显卡的信息。

           执行命令:./bandwidthTest –memory=pinned

           又会返回一大堆结果,最后应该是Result=pass

到此,CUDA安装结束。

 

  1. 安装CuDNN

Caffe学习网址:https://www.bilibili.com/video/av37229163/?p=1

安装参考网站:https://blog.csdn.net/u010159842/article/details/54291930

正确的安装cuDNN方式,其实跟着官方安装说明进行安装就可以了。

 

1. 从https://developer.nvidia.com/cudnn上下载cudnn相应版本的压缩包(需要注册或登录)。

   下载cuda对应版本的cudnn:cuDNN Library for Linux

   解压当前的.tgz格式的软件包

      

tar -xzvf cudnn-9.0-linux-x64-v7.tgz

   解压后的文件夹名为cuda,文件夹中包含两个文件夹:一个为include,另一个为lib64。

   最好把这个cuda文件夹放在home目录下,方便操作。 

 

##############################################################

2. 将解压后的lib64文件夹关联到环境变量中。这一步很重要。

 

sudo gedit ~/.bashrc

在最后一行加入:

export LD_LIBRARY_PATH=/home/cuda/lib64:$LD_LIBRARY_PATH

   注意lib64文件夹的路径,

   保存更改的文件后,紧接着:

 

source .bashrc

   再重启一下终端,该步骤可以成功的配置cuDNN的Lib文件。

 

##############################################################

 

3. 配置cuDNN的最后一步就是将解压后的/home/cuda/include目录下的一些文件拷贝到/usr/local/cuda/include中。

   由于进入了系统路径,因此执行该操作时需要获取管理员权限。

 

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

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

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

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

到此cuDNN的配置就完成了。

    测试:输入nvidia-smi,出现下图则说明成功。

Ubuntu16.04 环境配置(cuda9.0+cudnn7.05+caffe)

=============================================================================================

以上是基础配置,无论是采用什么深度学习框架都需要配置

=============================================================================================

接下来需要安装的是深度学习的框架,如caffe、TensorFlow等

  1. 安装caffe

Caffe安装介绍视频讲解网址:https://www.bilibili.com/video/av5912510?from=search&seid=8318754554422956358

环境:bantu16.04 X64

基础:linux操作基础(一定要又linux的基础,因为我的文档没有对命令做解释,有的直接用文字描述)

注意:大家最好是按照这种方法来安装,不然会像我一样,普通的编译不是缺少这个就是缺少那个的,这个坑是真的深,最后希望你能坚持,不要因为环境问题而吓到,我一个人在这社团安装了两天才总结出这个出错的概率非常低的方法。

1. 首先下载caffe

       通过命令或者网页下载都时可以的,首先在home文件夹下面建立caffe目录。

       命令:git clone https://github.com/weiliu89/caffe.git

2.下载相关的依赖

       在caffe/python/目录下有一个 requirements.txt 文件,查看文件的内容,发现里面都是相关的依赖,通过命令安装列出来的依赖,可以一次性安装多个,这里我把我安装的命令给粘贴一下,其中有一个依赖我没有找到,就没有安装。

       apt-get install python-numpy python-scipy python-scikits-learn python-matplotlib ipython python-h5py python-leveldb python-networkx python-nose python-pandas python-dateutil python-protobuf python-gflags python-yaml  python-six

Ubuntu16.04 环境配置(cuda9.0+cudnn7.05+caffe)

3.编译

       编译的步骤,一定要按照我的顺序来,不然跳到坑里就爬不起来了,当然,我的情况可能和你的又会不太一样,这里的坑实在是太多来,虽然解决了,但是都不知道到底是怎么解决的,这在里爬个一两天也是很正常的,不要放弃,坚持住,找博客,找文档,一个一个的试吧!

       第一步:安装依赖,太多的依赖的,反正就装吧,少一个都不行,我在编译的时候一出现少某个依赖我就要出来装 一次,反正你别管有没有用,先装上,不然给你报错的时候你心态就崩了,由于很多文件都需要root权限,所以我直接切换了用户,不然权限不够有时候给你报个错你还看不懂,切换用户命令命令:su root

       依赖安装:apt-get install libgflags-dev

                        apt-get install libgoogle-glog-dev

                        apt-get install libhdf5-serial-dev   (就这个东西如果不装的话编译会报一个找不到这个文件或目录,网上很多方法所修改一个路径,我修改过后发现还是没用,反过来一想,万一是我系统本身就没有呢,一安装果然是没有这个,安装完成,为了防止再出错,我重启了一下系统,编译通过)

       如何进行最小话错误的编译呢,这也是我爬了两天总结出来的,首先切换到caffe目录先,在目录中找到Makefile.config文件,可能你找不到这个文件,我也没找到,我就看到有个Makefile.config.example,那就复制一份呗,命名为Makefile.config。

       复制文件:cp Makefile.config.example Makefile.config

       以后只要是要修改配置文件的工作,都请先复制一份,都是第一次接触,万一手滑了呢,我的习惯就是先备份,错了从来就好了,接着就是需要按照自己的需求去修改了,网上给了非常详细的资料,每个人的使用不同,插件不同,配置是稍有差异。

       新建目录:mkdir build

       切换到build目录:cd build

       各位,坑要来了,这里出问题的几率几乎是百分之一百,但是也不用担心,跟着我的步骤走,应该能少爬一些坑,很多网上的教程直接在上一级目录就直接make编译了,我也是在哪里编译了一天,基本上没有出来,晚上回去在网上看到高博士的一个视频,发现了一个减少错误的方式。

       首先在build目录下输入命令:cmake  ..

       后面的..不要看露了,这里如果出现问题了,比如说hdf5找不到了,我是按照网上的教程去的,添加了路径还是没用,才发现没有装hdf5,所以不知道是不是路径的原因,看高博士的视频时对makefile.config文件几乎没有做过修改。

       在cmke ..的时候出现的任何问题都复制到百度里面去,修改的方法一大堆,这里编译完成了以后,就返回上一级目录,也就是caffe的根目录,输入命令进行编译:make -j8 ,后面这个-j8是个可选项,就是启动几个线程的意思,根据自身电脑来,我这里的电脑配置好像挺高的,直接就启动8个线程了,编译的速度很快,如果只是输入make的话就是单线程,那速度你试试就知道了,等待个3分钟左右就编译完成了,为了庆祝这两天爬坑的辛苦,放上一张编译好的图吧,看到图就有力量了。

Ubuntu16.04 环境配置(cuda9.0+cudnn7.05+caffe)

       测试:

       在这里输入:ls tools,这个命令将会把所有编译好的二进制文件列出来,再输入:tools/caffe,这个命令将会列出所有的命令,以后深度学习以全都需要通过这些命令,如果到了这一步那就已经说明安装已经全部完成了,我差点就死在了深度学习的第一步,搭环境。

Ubuntu16.04 环境配置(cuda9.0+cudnn7.05+caffe)      

如果你出现错了,不要放弃,我没有老师指导也装出来,我都能装出来,聪明的你绝对没问题啊。

TensorFlow的安装在我另外一篇帖子里,后面补上OpenCV的安装,只要是自己编译的我现在都是安装caffe的编译方式来进行安装,出错的概率很低。