重装Ubuntu 恢复 Cuda + cudnn + GPU driver + tensorflow 环境走过的坑
接上
最近要重现YOLOv3 实时在线物体检测算法,代码要求Python3.6及以上由于Ubuntu 自带的Python版本是3.5.2于是索性直接给卸掉了, 由于是Ubuntu自带的版本, 可能系统需要用到里面的组件,再次重启系统的时候产生登陆循环login loop 问题。
关于login loop 问题,看上一个帖子,在本机上已经解决
解决login loop 问题只是开始, 由于要恢复cuda + cudnn + tensorflow 的GPU计算环境 所以要重新考虑版本以及兼容性的问题
首先安装python3.6版本, 以及如何设置为默认选项
参考这篇帖子: https://www.cnblogs.com/yjlch1016/p/8641910.html
pip3 安装 升级 卸载
参考: https://blog.csdn.net/tiweeny/article/details/78384633
完了首先搭建好cuda + cudnn + 显卡驱动的环境 然后再安装tensorflow (个人认为应按按照这个顺序)
首先查看本机上的Nvidia 显卡型号 :
sudo dpkg --list | grep nvidia-*
由于安装cuda需要用到驱动程序中的代码块, 驱动安装被内置为cuda安装的一部分,这样就不会有cuda和驱动的兼容性问题, 自己安装的驱动版本和cuda的版本不一定能兼容,建议首先卸掉自己本机上的驱动然后再安装的cuda
卸载驱动程序命令:
sudo apt-get remove --purge nvidia-*
sudo apt-get autoremove
sudo apt-get install -f
sudo reboot
注意: 只有第一个命令 是卸载驱动,如果同时使用了第二个第三个命令,会将已经安装的CUDA全部卸载,卸载完驱动程序之后需要重启电脑使之生效,注销也行
现在安装cuda
https://developer.nvidia.com/cuda-toolkit-archive
进入Nvidia cuda-toolkit-archive 网站
挑选自己心仪的版本,最近刚出的CUDA-10.0 最新版本, 不推荐使用,因为版本刚发布,太新,很多其他的软件包更新跟不上导致兼容性问题。
在挑选完自己心仪的版本之后
根据提示首先下载,然后后面依次 有4个命令,前三个都没有问题在terminal 输入
注意第四个命令:sudo apt-get install cuda
如果直接输入这个命令无论选哪个版本的cuda 最后都会安装最新的 cuda-10.0 版本
应该用: sudo apt-get install cuda-9-0 指定所要安装的版本
等待系统自动安装大概需要15分钟左右, Ubuntu 会在/usr/local 目录下新建两个文件夹
一个cuda 一个 cuda-9.0 安装完毕
然后将cuda路径添加到环境变量中
首先cd 回到主目录
gedit ~/.bashrc # 编辑 .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 # source 命令 使之生效
然后测试 cuda 安装成功与否, 运行cuda 自带的sample 成功的话会看到GPU 运算的烟花
$ cd /usr/local/cuda-8.0/samples/5_Simulations/nbody
$ sudo make
$ ./nbody
接下来安装cudnn, 网上下载适合自己的兼容的版本 这里我用的是cudnn-9.0 版本
$ tar -xzvf cudnn-8.0-linux-x64-v5.1.tgz
$ 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*
解压,然后将相关文件添加到cuda文件夹中 ,至此tensorflow 所需要的文件环境就搭建起来了
中间的若干兼容性问题需要根据自己所有的版本型号进行搭配
现在安装tensorflow 前面已经安装python3.6 和 pip3
使用pip3 包管理器直接安装tensorflow-gpu
pip3 install tensorflow-gpu
直接使用这个命令 出现permission denied 的问题
pip3 install tensorflow-gpu --user
解决
打开python import tensorflow 测试安装是否正确,已经GPU能不能使用
Python 进入python3.6 的界面
import tensorflow 然后提示 导入错误
ImportError: libcudnn.so.7: cannot open shared object file: No such file or directory
libcudnn.so.7是cudnn的文件, tensorflow-gpu 安装成功 但是 与 cudnn 发生连接错误, 这里需要重新建立连接
2.CUDNN连接建立
cd /usr/local/cuda/lib64
sudo rm -rf libcudnn.so libcudnn.so.7 #删除原有版本号,版本号在cudnn/lib64中查询
sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7 #生成软连接,注意自己下载的版本号
sudo ln -s libcudnn.so.7 libcudnn.so
sudo ldconfig #立即生效
测试 import tensorflow as tf 导入成功
接下来安装Pycharm 跑个CNN
先在PyCharm官网下载安装包 链接 : https://www.jetbrains.com/pycharm/download/#section=linux
下载 ubuntu版本
然后解压到当前文件夹
cd Downloads/pycharm-2017.1.4/bin
sh ./pycharm.sh
然后跳出来安装界面,然后根据自己喜好配置
最后会出现这张图,Create New Project 创建一个新项目
添加Python刚刚安装好的python3.6解释器 正常的话 就可以用GPU跑CNN了