安装驱动

最开始在英伟达官网下载了官方驱动,安装之后无法登录系统,在登录界面反复循环,用cuda里的驱动也出现了同样的问题。最后解决办法是把驱动卸载之后,通过命令行在线安装驱动。
卸载驱动:

sudo nvidia-uninstall

在线安装:

sudo apt-add-repository  ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-384 #具体驱动版本号可以到官网查

安装完之后,在终端输入

nvidia-smi

出现下图,说明显卡安装成功:
Ubuntu 16.04安装N卡驱动、cuda、cudnn和tensorflow GPU版

安装cuda

在英伟达官网下载cuda安装包(.run文件),在终端中切换到cuda安装包目录,直接sudo运行安装包即可。注意在问你是否要安装显卡驱动的时候,选择no。
安装之后,添加环境变量:

gedit ~/.bashrc

在文件最后添加如下几行:

export PATH="/usr/local/cuda/bin:$PATH"
export CUDA_HOME="/usr/local/cuda"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH"

之后把cudnn文件复制到cuda安装目录的lib和include文件夹下。

安装tensorflow

安装之前需要安装libcupti-dev库,

sudo apt-get install libcupti-dev

安装tensorflow的方法很多,最简单的方法是用pip(或者用conda命令,如果你安装了anaconda的话)安装:

pip install tensorflow-gpu
# conda install tensorflow-gpu

如果想制定安装某个版本,可以在tuna上查看具体版本的链接:

https://mirrors.tuna.tsinghua.edu.cn/help/tensorflow/

验证安装是否成功,在python命令行中输入如下代码:

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

如果输出Hello, TensorFlow!,说明安装成功。如果报错说没有找到libcuda.so:

ImportError: libcuda.so.1: cannot open shared object file: No such file or directory

那么到系统的库文件目录下新建一个链接,链接到cuda安装目录下的libcuda.so文件。首先通过下面的命令查找libcuda.so在哪个目录下:

sudo find / -name 'libcuda.so*' -maxdepth 10

假设找到是在目录LIB_DIR下,那么通过下面的命令新建链接:

cd /usr/lib/x86_64-linux-gnu  # 系统库文件目录
sudo ln -s LIB_DIR libcuda.so.1

其他错误,请参考如下链接:
https://www.tensorflow.org/install/install_linux#common_installation_problems

参考资料:

[1] https://www.tensorflow.org/install/install_linux