一、查看显卡信息:

查看显卡:

lspci | grep -i nvidia   
#我的是06:00.0 3D controller: NVIDIA Corporation Device 15f8 (rev a1)

然后看显卡驱动:

lsmod | grep -i nvidia
#我刚装完系统后没有任何驱动,所以这里有没有没关系。

二、安装显卡驱动

1、自己下载安装:

官网,选择自己的显卡型号,然后下载驱动。回到ubuntu,打开终端,首先卸载一下之前安装的:

sudo apt-get --purge remove nvidia-*
#因为我新装的系统没有任何驱动,所以不用卸载

然后写入黑名单屏蔽nouveau:

sudo vi /etc/modprobe.d/blacklist.conf

到最后添加:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

保存退出。

lsmod | grep nouveau
#看是否有输出,没有输出说明屏蔽成功,可以跳过下一步;如果有输出接着下一步。

==================================

sudo update-initramfs -u

lsmod | grep nouveau

#这样应该没有输出了,如果还有重启一次就好了。

==================================

sudo /etc/init.d/lightdm stop
sudo init 3
chmod a+x NVIDIA-Linux-x86_64-410.78.run
sudo ./NVIDIA-Linux-x86_64-410.78.run -no-x-check -no-nouveau-check -no-opengl-files 
nvidia-smi

sudo /etc/init.d/lightdm start
#安装驱动完成。

2、和cuda一起安装:

上面的方式我是看到很多博客总结出来的,我并没有按照上面的执行,我在官网下载的是deb格式的驱动,我就没按照那么安装,我就在安装cuda的时候顺便安装了一下驱动,下面会讲到,比较简单。

三、安装cuda

我在这里花的时间最多,关于cuda+cudnn+Tensorflow版本的问题,纠结了好半天,这里给一个参考这是我目前发现的关于版本对应的最好的一个总结,如果你不想那么麻烦,你可以按照我的安装版本直接安装cuda_9.0.176_384.81_linux.run+ cudnn-9.0-linux-x64-v7.solitairetheme8+tensorflow 1.8.0,其中cudnn是7.0.5。进入你自己下载cuda和cudnn的目录然后开始安装:

sudo bash ./ cuda_9.0.176_384.81_linux.run

首先出现的就是说明,按q退出,输入accept接受,回车。

接下来就是关于你是否安装驱动,这里要注意,如果你上面安装驱动是按照第一种方式,自己已经安装好了,那么此时你选择n然后回车;如果你上面是第二种方式,没有安装驱动,那么你此时选择y,然后回车。

剩下的可以一并选择y就可以了。

==================================

这里如果遇到这个问题:

If you're sure that X is not running, but are getting this error, 
please delete any X lock files in /tmp.

那么你需要删除一个文件:

sudo rm /tmp/.X0-lock

接下来在重新执行cuda的安装文件就可以了。

==================================

打开.bashrc文件添加如下路径,我的.bashrc文件在/home/colab下,如果没有找到直接终端输入一部分然后用tab补齐或者终端ls –a命令查看。

sudo vi .bashrc
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
#可能这里的路径区别就在与cuda的版本问题,这里有cuda和cuda x.x两个文件夹,
#这两个文件夹是软连接的关系,相当于windows里面的快捷方式,所以添加谁都可
#以。保存退出。
source ~/.bashrc
nvcc --version
#如果显示下面的图示就说明成功了。

四、安装cudnn

终端运行:

tar xf cudnn-9.0-linux-x64-v7.solitairetheme8

会在当前目录中解压出一个名为cuda的文件夹,结构如下:

复制cudnn中的文件到CUDA中:

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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
#然后运行:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

出现如下就说明替换成功了:

五、安装tensorflow

我这里自带python2和python3的版本,我需要用到python3,所以我用pip3去安装到python3的库中(默认安装路径:/usr/local/lib/python3.5/dist-packages/)我这里指定的1.8.0的版本,同时因为我是教育网,所以用的清华的pip源:

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

安装完成后进入python3测试:

python3
>>>import tensorflow

如果没有报错,那么恭喜你安装成功了!

==================================

我之前在这里报了个错误:

ImportError: 
    libcublas.so.9.0 cannot open shared object file: No such file or directory

1、libcublas.so.9.0的路径在/usr/local/cuda/lib64下,这个是cuda里的一个库文件,你进入这个目录查看这个文件是不是在,如果同名但是版本不同,就说名你的cuda和tensorflow的版本不匹配,你需要卸载重新换版本安装。

2、等我更换了后来的版本,发现这里能安装了,也能成功引用了,应导师要求,为了给其他同学用,需要给其他同学创建账号也使用tensorflow,但是!!!我发现(我用colab账号装的cuda)只有当时安装cuda的账号可以成功引用tensorflow,其他的账号同样报错ImportError: libcublas.so.9.0 cannot open shared object file: No such file or directory,我首先怀疑是不是权限问题,于是我把所有的账号都放到了同一个组,再次尝试,依旧不行……,我去修改tensorflow的权限,给了一个777(非常不建议!!!),还是不行……,正当我不知道怎么办的时候,我想到了一个事情,colab账号可以使用,其他账号(包括root)不可以用,而且还是引用错误,那就说明是这个库文件可能只属于colab,于是我就把这个库放到了共享库的配置文件中,文件是/etc/ld.so.conf

命令行中执行:

sudo echo "/usr/local/lib" >> /etc/ld.so.conf
sudo ldconfig

但是又出错了(我不清楚这里是***作问题还是都有这个问题)……

报错是:

libcudnn.so.7 is not a symbolic link

于是我进入/usr/local/cuda/lib64文件夹,找到libcudnn.so.7,发现别的文件都是四个一组,两个软连接,一个库文件,一个普通文件,唯独libcudnn.so.7这个是三个库文件和一个普通文件,于是我仿照其他的库文件修改成了两个软连接,一个库文件,一个普通文件的组合。

再次执行:

sudo ldconfig

没有报错,切换到其他账号,进入python3编辑器,再次测试:

python3
>>>import tensorflow

这次终于成功了!!!!这次弄前后一共花了四天时间,卸了装,装了卸,各种坑,希望以后再有人遇到这些问题能够快速解决。