Ubuntn16.04+tensorflow-gpu

        我是第一次写这个,今年导师手下几个大四学生毕业设计要完成基于深度学习的目标检测项目 于是让我带一下这些小朋友,我给他们推荐的是一个比较老的模型,用Ubuntu实现基于Tensorflow的Faster-rcnn视频目标检测(干了两天之后发现这个对大四的同学确实有点难,特别是他们不是计算机专业的,毕竟自己当初也是费了不少力气)

    结果小朋友们一来就犯迷糊了,由于大家都不是计算机专业的所以连Linux系统都不知道,其实我在读本科的时候也只是听说但从来没用过,因为我是电气工程自动化专业的也不是特别的近,终于完成了Ubuntu系统的安装(网上****实在太多)

       接下来就带他们安装tensorflow-gpu,写这个也是为了让他们不用一个一个来问我,直接看就行,废话不多说,上干货


Ubuntn16.04+tensorflow-gpu

      假设这是一个刚刚安装好进入界面的Ubuntu16.04,如果小白选手看到有不一样的千万别急,没什事情,接下来打开搜索输入ter找到终端

Ubuntn16.04+tensorflow-gpu

     也就是这个黑色的框框点开它 我们先来完成几步简单动事情,命令行输入一下命令

sudo passwd

输入密码成为进入root用户的登入密码为了方便我的所有密码都一样,在输入密码动时候页面上是不会显示,别以为自己没输入

Ubuntn16.04+tensorflow-gpu

一下的内容如果有遇到执行代码时蹦出红字说权限不够动时候就进入root用户再执行一边代码,进入root的方法是这样的输入命令

su root  然后输入密码,想切换回来就打 su tianjin 这里我是tianjin,你们是什么就看自己的了效果如下

Ubuntn16.04+tensorflow-gpu

再然后我们就开始干正事

sudo apt-get update 这句话动意思是升级一下apt-get方便下载(粘贴的快捷键是Ctrl+Shitf+v)

Ubuntn16.04+tensorflow-gpu

第一次可能会问你密码输入就行之后就不会再问,除非打开新动终端接着执行,再输入新的命令,就像下图

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150

Ubuntn16.04+tensorflow-gpu

执行以上两句话把默认的python2版本改成3版本 就像上面这样,进入python后按ctrl+D 退出

接下来安装pip3命令是

sudo apt-get install python3-pip

安装完之后要升级代码是

sudo pip3 install --upgrade pip

由于tensorflow不同版本对pip动要求不一样比较新的版本都要求pip达到9的版本,具体可以在tensorflow官网上看到,但是升级一定是没有问题的。

pip -V 来查看升级后的pip是否为9版本

接下来我们要开始安装NVIDIA驱动 

在搜索中输入系统设置 然后点击最下面的系统和更新 点击附加驱动 按下图按照我显示的设置好,点击‘应用更改’

Ubuntn16.04+tensorflow-gpuUbuntn16.04+tensorflow-gpu

之后我记得‘应用更改’的左边会出现‘重启’ 点击,然后重启,我记得点击后好像会要密码之类的,反正就输入你的登入密码就行来,之后重启,再出现的东西就拼命敲回车就行

重新进入登入页面 我们要正式安装tensorflow-gpu在这里要注意一些问题第一是显卡计算能力有没有3,我记得只要是gtx650之上的显卡都行,不过我觉得现的电脑不可能没3,要是连3都没的电脑,这电脑可以进垃圾桶了,还做什么深度学习呀,还有的问题就是比较重要了,CUDA和cuDNN的版本,这里我在tensorflow官网上找的

Ubuntn16.04+tensorflow-gpu

我不建议大家装1.5的甚至我也不建议大家装1.4的,1.5好像是前几天刚刚出来的,大家肯定都知道这个道理新的东西都不建议安装,毕竟tensorflow在1的版本之后API就已经趋于稳定,所以,大差不差,这里以1.2本版为例子,首先我们要下载CUDA.8,在google搜索cuda toolkit archive,点击第一个Developer就行,找到CUDA Toolkit 8.0 GA2这个选项点击,然后按照下图点击1.9G的Download,点击确认下载到home目录下的下载文件夹

Ubuntn16.04+tensorflow-gpuUbuntn16.04+tensorflow-gpu

Ubuntn16.04+tensorflow-gpuUbuntn16.04+tensorflow-gpu

之后是下载cuDNN5.1这里就在google搜索cuDNN点开第一个Developer,进入后点击Download,之后会很霸道的强迫你join in,自己拿邮箱去注册一个,毕竟用别人的东西就要听别人动话,也别去网上找什么别人公开的,就用官方的,最靠谱要不了你几分钟,注册好,并认证之后点击login,输入帐号密码,在I Agree To the Terms of the cuDNN Software License Agreement前打勾,点击Download cuDNN v5.1 (Jan 20, 2017), for CUDA 8.0别点错了,然后点击for Linex,下载到默认路径,请配合下图阅读文字

Ubuntn16.04+tensorflow-gpuUbuntn16.04+tensorflow-gpu

Ubuntn16.04+tensorflow-gpu

Ubuntn16.04+tensorflow-gpu

   下载好之后在你在你的home的下载文件夹下应该有两个文件一个是CUDA另一个是cuDNN,就像下图,然后在文件夹空白位置右键,选择在‘终端中打开’输入以下命令,

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

下面有一张终端图的示例,一句一句跑,这里我就不跑了因为我动电脑里已经安装了,如果中间有什么不一样的那最多就是问你yes or no那当然选yes啦,无可非议

Ubuntn16.04+tensorflow-gpuUbuntn16.04+tensorflow-gpu

接下来是两个安装过程中的重中之重的第一个,CUDA的环境变量

输入以下命令

cd
nano ~/.bashrc

Ubuntn16.04+tensorflow-gpu

敲击enter按键后会出现

Ubuntn16.04+tensorflow-gpu

对于小白选手你不需要知道里面写的是什么,你只需要按住方向键动下键移动到最最最底下将以下这两句命令复制进去

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

就像下图

Ubuntn16.04+tensorflow-gpu

你们会发现你们粘贴好后和我的不一样 我的下面还有一句话,这就是之后的第二个重中之重,稍后会说。你们粘贴好之后按Ctrl+x,在按Y再按enter离开,回到之前的页面,输入以下命令

source ~/.bashrc

然后我们回到刚才的下载文件夹右键cudnn-8.0-linux-x64-v5.1.tgz,选择提取到此处,就会有下图

Ubuntn16.04+tensorflow-gpu

多出来一个叫cuda的文件夹,点击刚才的终端,如果被关掉了,就在这个文件夹动空白的地方选择在‘终端打开’依次输入以下命令但凡有问yes还是no的都选yes

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 /usr/local/cuda/lib64/libcudnn*
sudo apt-get install libcupti-dev

然后我们要进入root用户,因为再之后就是下载tensorflow-gpu,因为这个命令我记得只有root用户下才能执行,按照之前说的进入root用户 输入以下命令

pip3 install tensorflow-gpu==1.2

就开始下载tensorflow-gpu1.2了,下载完之后别高兴得太早进入python

输入 import tensorflow as tf

就像这样

Ubuntn16.04+tensorflow-gpu

你会得到这样的结果

Ubuntn16.04+tensorflow-gpu

傻了吧 哈哈 我就不告诉你为什么,别去导师那里打我小报告,看我整死你,哈哈

其实你肯定已经猜到来,之前说的重中之重只说来一个,这就是第二个,原因是因为缺少NIVIDA的驱动路径,还是得在环境变量中添加点东西关闭这个窗口吧,打开一个新的终端输入以下命令

nano ~/.bashrc

按照之前动的过程到最底下输入

export LD_LIBRARY_PATH=/usr/lib/nvidia-384

注意这里最后384还是多少就要看你的驱动了,如果之前报错了,那就直接看到来这个驱动的版本我的是384,如果没看到在最前面介绍安装驱动动时候再打开来,也能看到实在不行就错着再来一边就看到了

然后按照之前的过程保存退出(Ctrl+x,y,enter)。现在你的tensorflow应该是可以用了,还有记住一点添加的环境变量由于是在bashrc的文件夹里,不是全局变量,所以你只能在当前用户下使用tensorflow,在root用户是使用不了的回到当前用户执行tensorflow就像下图

Ubuntn16.04+tensorflow-gpu

没有报错,一切正常,可以放心使用

到此结束,如果你们有什么问题可以来我办公室找我,导师比较忙别麻烦他。

我是第一次写这个,如果看这篇博客的是别人,有什么问题可以多交流,之后会写一个faster rcnn的视频检测,不过那个比较费事,可能会要点时间