问题及解决方法
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重装了,毕竟那里边有自己用的顺手的软件和配置,重装一遍代价很大。