Ubuntu 16.04安装NVIDIA显卡驱动 、CUDA-8.0、cuDNN和TensorFlow问题及解决方法

问题及解决方法

Nvidia-375驱动安装

问题

我使用的是联想Y430P笔记本,GTX850M显卡。由于联想的本大多是双显卡,在安装显卡驱动的时候容易出现一些人生的意外。原先的ubuntu14.04从源里安装了Nvidia-346版本的显卡驱动,具体教程可见ubuntu14.04安装GTX850M显卡驱动实录。升级成ubuntu16.04后依然好用。在装CUDA-8.0的时候想升级成Nvidia-375版本,于是先卸载了Nvidia-346版本驱动,使用官方CUDA安装包中自带的Nvidia-375驱动安装后出现了循环登录的问题。
从网上找的资料分析有如下几个原因:
1. 如果ubuntu版本是14.04,很难解决循环登录的问题,所以建议用16.04版本
2. 从官网CUDA安装包自带的驱动进行安装容易出问题,原因可能是CUDA中的OPENGL库对有双显卡的电脑自带的驱动造成了影响,但是对只有单显卡的电脑没有影响。

从源里安装的驱动已经经过测试,所以建议安装CUDA之前首先单独安装显卡驱动,然后在安装CUDA工具包的时候不选择安装Nvidia驱动,这样可以避免循环登录的问题。

解决

以下解决方案基于已经安装CUDA但出现问题的系统(循环登录的情况)
1. 首先卸载已经安装的Nvidia显卡驱动,注意这里只是卸载显卡驱动,不用把CUDA卸载了
2. 从源里安装Nvidia-375显卡驱动,可以从软件更新->附加驱动里安装,也可以从控制台安装
3. 显卡驱动的卸载:sudo /usr/bin/nvidia-unistall ,另外如果使用apt安装方式可以用sudo apt-get install autoremove --purge nvida* 卸载
4. 由于不能进入图形界面,首先应该Ctrl+Alt+F1进入tty,发现tty竟然不能显示中文,需要安装fbterm来支持中文显示。顺便提一下从tty返回图形界面命令是Ctrl+Alt+F7

安装fbterm

sudo apt-get install fbterm
vi .fbtermrc
font-size=16    #修改字体大小
font-names=Ubuntu Mono  #修改字体类型

sudo fbterm #运行

重新安装显卡驱动

sudo /usr/bin/nvidia-unistall   #卸载显卡驱动

sudo add-apt-repository ppa:mamarley/nvidia   #添加源
sudo apt-get update

sudo apt-get install nvidia-375 nvidia-settings   #安装Nvidia-375驱动

重新安装驱动后重启电脑
这样可以先把驱动装好,接下来再安装CUDA工具包。

安装TensorFlow

官方安装文档见Installing with native pip
我是使用 native pip方式安装,预先Anaconda3安装的Python版本为3.5,注意Python版本要和安装文档中对应,太新的版本可能不支持。

sudo apt-get install python-pip python-dev  #首先安装pip
pip3 install tensorflow-gpu # Python 3.n版本GPU支持的TensorFlow 

安装cuDNN

问题

问题:
启动python后import tensorflow as tf
报错:ImportError: libcudnn.so.5: cannot open shared object file: No such file or directory

解决

原因是使用的TensorFlow版本暂时只支持cuDNN v5.1,先前安装的是最新的cuDNN v6.0,首先删除/usr/local/cuda-8.0/lib64中的关于cuDNN v6.0的软链接,然后重新安装cuDNN v5.1

cd /usr/local/cuda-8.0/include
sudo rm cudnn.h  #删除包含头文件
cd ~/cuda5.1/cuda/include
sudo cp cudnn.h /usr/local/cuda/include/  #重新复制头文件

cd /usr/local/cuda-8.0/lib64
sudo rm -rf libcudnn*   #删除原先安装的动态链接文件
cd ~/cuda5.1/cuda/include
sudo cp lib* /usr/local/cuda/lib64/  #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有链接文件
sudo ln -s libcudnn.so.5.0.5 libcudnn.so.5  #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接

重新运行sample测试文件后发现输出正常~

总结

在出现问题的时候不要慌张,查找资料冷静分析原因。遇到开不了机的情况确实捉急,但是千万别一气之下把Ubuntu重装了,毕竟那里边有自己用的顺手的软件和配置,重装一遍代价很大。

你可能感兴趣的:(Tensorflow教程)