Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

以前在学校做科研期间多次装过深度学习环境,所以这次也不算难,而且本人很享受这种遇到问题独自解决问题的乐趣,希望我遇到更多的问题,解决更多的问题哈哈。以前在学校装过caffe(cup版),tensorflow,keras,pytorch等,除了带gpu的caffe非人类之外(传言隔壁实验室某同学装gpu版caffe装了两个月,我实验室同门也装了一个多月才装好,等到我装了一个星期没装好,我放弃了,为了一个框架安装花一个月真不值得,我还是装个cpu版的caffe玩玩算了),其他的深度学习框架安装都比较简单,你需要的是耐心加细心,不需要太多智商哈哈。

 

首先声明我用的系统是ubuntu14.04,本系统自带python3.4和python2.7。但是最近下载一个代码要求python是3.5的,所以我打算卸载掉python3.4,重新装个python3.5。因为,如果环境中有多个python,在使用python时候需要指定或者配置以确保使用的是自己想要的python版本,因此我觉得卸载掉重装是最快的方式。因此我卸载掉了python3.4,我没有想到ubuntu自带的python有这么大的影响,我执行命令后去喝了一杯茶,回来发现我的系统崩了,菜单栏都成了问号,网络成了一条横线,我想糟了!!!赶紧重启一下试试!!没想到重启后无法进入图形界面,我的天哪!!赶紧ctr+alt+F1,我检查了下我的tensorflow,keras,cuda,cudnn,ros都不在了,我试着用pip重新修复,不行,换来apt-get不行各种都试了试,还换了镜像均告失败。我冷静想了下,我把网都搞坏了这些当然都没用,即使网是好的我东西都别我干掉了跟重装有什么区别!!我的唯一办法就是重装系统,太手残了。。。。。。我很快重新装好了ubuntu14.04和NVIDIA驱动,然后隔天开始装本文说的环境。

 

首先ubuntu14.04对应的驱动我安装的是NVIDIA-Linux-x86_64-418.74.run,驱动的版本和你将要安装的cuda的版本是有关系的,有限制条件的,具体网址如下https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.htmlUbuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

根据我的nvidia驱动版本我应该安装CUDA10.1,因此进入官网下载。具体下载地址如下https://developer.nvidia.com/cuda-toolkit-archiveUbuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

下载后在ubuntu中ctr+alt+F1登录输入密码,然后执行

sudo  service  lightdm  stop

切换到指定目录执行sudo sh cuda_10.1.168_418.67_linux.run命令。

然后执行

sudo  service  lightdm  start

 

我开始时候是直接执行的sudo sh cuda_10.1.168_418.67_linux.run命令报错,因此执行了sudo  service  lightdm  stop修正再执行然后成功。

然后ctr+alt+F7切换回图形化界面。

然后sudo gedit /etc/profile 

在打开的文件中末尾加入以下三行:

export CUDA_HOME=/usr/local/cuda-10.1

export PATH=$CUDA_HOME/bin:$PATH   

export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

 

然后执行source /etc/profile使得对应文件生效。

然后检查是否cuda安装成功:

nvcc --version

Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

出现上图这样证明已经装好了。然后需要运行cuda提供的例子,看看自己是否配置ok,这部分比较匆忙没有截图。。。。

 

然后安装cudnn

首先下载cudnn,具体下载网址如下

https://developer.nvidia.com/rdp/cudnn-download下载可能需要你注册账号花几分钟哈哈。

cudnn和cuda也有版本对应关系,进入下载页面

Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

由于我自己的cuda是10.1的,因此下载时候提示需要下载的cudnn版本。进入后再选中对应的系统。

最后我下载的是libcudnn7-dev_7.6.2.24-1+cuda10.1_amd64.deb。下载后解压

sudo dpkg –X  libcudnn7-dev_7.6.2.24-1+cuda10.1_amd64.deb  extract

sudo cp   extract/usr/include/cudnn.h   /usr/local/cuda-10.1/include

sudo cp  extract/usr/lib/x86_64-linux-gnu/libcudnn*   /usr/local/cuda-10.1/lib64

sudo  chmod  a+r   /usr/local/cuda-10.1/include/ cudnn.h   /usr/local/cuda-10.1/lib64/ libcudnn*

 

然后安装tensorflow-gpu

sudo pip install –i  https://pypi.tuna.tsinghua.edu.cn/simple   tensorflow-gpu

执行这一步的时候我遇到了很多问题首先是pip的问题,我使用pip 或者pip3安装。由于此时我还没有下载python3.5也没有安装,所以此时我想着如果我使用pip安装,对应会安装好python2.7对应的tensorflow-gpu,如果我使用pip3安装,会安装好python3.4对应的tensorflow-gpu,因此我先使用pip安装报错,再使用pip3安装,仍然报错,错误都一样。Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

分析这个错误,我觉得可能是pip和pip3的版本不够新,因此我更新了pip和pip3

sudo pip install --upgrade pip

sudo pip3 install --upgrade pip

更新过后再次尝试,果然pip就好了,这个错误消失了,但是pip3仍然报这个错。我猜想可能这次真是我python3.5跟pip3不太搭哈哈,因此我下载了python3.5安装配置好了再次使用pip3安装果然就好了。

在安装tensorflow-gpu的时候还遇到过一些其他问题,都是些什么包呀啥的重新补充更新或安装就好了,比较容易。

安装好了输入python 此时看到我的python 是2.7.6的版本,然后import tesorflow as tf 正常,然后输入tf.test.gpu_device_name()一切OK,说明安装上了带gpu的tensorflow。具体如下图说明正常。

 

Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

但是此时python对应的是2.7的,并不是我想要的,因此我卸载了tensorflow重新安装哈哈。不要怕麻烦,我就是没想着很快装好,我只想啥事都亲自做一遍,搞定它。然后我执行命令

sudo pip uninstall tensorflow_gpu卸载掉了。然后我重新安装python3.5,搞起。

sudo apt-get update(更新apt-get)

sudo apt-get install python3.5(安装python3.5)

sudo cp /usr/bin/python /usr/bin/python_bak,先备份

sudo rm /usr/bin/python,删除

sudo ln -s /usr/bin/python3.5 /usr/bin/python,默认设置成python3.5,重建软链接这样在终端中输入python默认就是 3.5版本了

 


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

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


sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 200

sudo mv /usr/bin/python3 /usr/bin/python3-old


sudo ln -s /usr/bin/python3.5 /usr/bin/python3

执行完后再次查看我的系统发现:

Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

Ok,这正是我想要的结果。

然后我再试试pip3安装tensorflow,这次果然就没有报以前那个错误,可以安装了哈哈。安装好了后执行python,然后输入import tesorflow as tf,然后使用tf.test.gpu_device_name()出问题了,哈哈。截图如下:

Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

这种情况说明你的cpu版的tensorflow是没问题的,但是gpu版的tensorflow不可用,因此必须解决这个问题。因此我想着给每个对应文件创建软连接应该就行了,创建完成后果然七个错误消失了六个,只剩下最后一个libcudnn.so.7这个错误仍然在,因此我切换到/usr/local/cuda-10.1/lib64/   目录下,查看文件ls,结果并没有发现这个文件,因此我猜测可能是缺少文件导致的,我想着如果我在网上再下载一个cudnn文件,把对应的文件拷贝到这估计这个错误就没了,因此我再次到官网下载了一个cudnn(这次下载的一个linux版本的,没有特定下载ubuntu版本的) cudnn-10.1-linux-x64-v7.6.2.24.tgz。然后解压,然后将下图中所示文件都拷贝到/usr/local/cuda-10.1/lib64/目录下,重新执行python,import tensorflow as tf,tf.test.gpu_device_name()发现这次一切都OK了,哈哈。Ubuntu14.04+python3.5+cuda10.1+cudnn7.6+tensorflow-gpu1.14安装过程

 

期间还遇到过诸多问题,不过是见一个解决一个,基本都解决了,没有解决的就换种思路或者方法。由于当时没有做记录,操作较快没有截图哈哈。