看来必须要写一篇总结了,快把自己搞死了,要把这次的坑总结一下
对于一个版本控来讲,凡事都要追求高版本,所以,我先安装了一个Ubuntu18.10,然后,正常安装pip3,然后pip3 install tensorflow-gpu,安装的是tensorflow-gpu的1.12.0版本,看起来一切美好,然后import tensorflow报找不到libcublas.so.9.0,才算是开始了噩梦
本来以为可以使用apt 来安装的,但是等到自动补全的时候,sudo apt install libcublas9.1 ,对,官方给的不是9.0版本,而是9.1版本
那就从官网下载了,https://developer.nvidia.com/cuda-downloads,我写这篇文章的时候,这个页面给出的是cuda10.0,下面有一个按钮Legacy Releases,进入历史版本,选择CUDA Toolkit 9.0,Linux,x86_64,Ubuntu,16.04,runfile(local),下载到文件,这里提一句,安装cuda的时候要退出图形界面,大致有两种方式,可以从以下两条命令中选择一个:
sudo init 3
或
sudo service lightdm stop
但是结果赤裸裸的告诉我们,安装不成功,下载的Ubuntu16.04版本的安装包,在Ubuntu18.10下安装驱动失败
所以,很多时候还是要听话,要根据官方的文档来做,先看下cuda9.0的安装指导
https://developer.download.nvidia.com/compute/cuda/9.0/Prod/docs/sidebar/CUDA_Installation_Guide_Linux.pdf
里面写明支持的Ubuntu版本为Ubuntu 17.04和Ubuntu 16.04,所以,还是老实一点,安装Ubuntu16.04吧
我下载了一个xubuntu-16.04.5-desktop-amd64.iso,安装上去,你以为这样就可以了吗?
非也非也
安装cuda依旧报错,类似于unable to locate kernel source,为什么?因为文档中说了,支持的kernel版本为4.4,而xubuntu-16.04.5-desktop-amd64.iso的内核版本为4.15.0,不符合要求
所以,很多时候还是要听话,网上有人说如何降低内核版本,我觉得既然嫌麻烦,不如当初就直接选择合适的系统版本好了,反正我不怕重装系统
=====================================================================================
从网上下载xubuntu-16.04-desktop-amd64.iso或者xubuntu-16.04.1-desktop-amd64.iso,这俩版本都是4.4的内核,不会出问题,不要下载更高版本的xubuntu-16.04.2-desktop-amd64.iso,因为这个发行版的内核版本已经是4.8了
正常安装好系统,然后安装pip3,sudo apt install python3-pip,安装pip3的时候,系统会自动装好make,gcc这些包,顺便也解决了下面安装cuda时候的依赖
下载cuda(步骤上面写了),执行文件cuda_9.0.176_384.81_linux.run安装,安装之后系统会提示需要把库路径写到文件/etc/ld.so.conf中去,即在该文件中添加一行/usr/local/cuda-9.0/lib64,
下载安装cudnn,https://developer.nvidia.com/cudnn,点击Download cuDNN,登录,同意协议,选择Download cuDNN v7.4.1 (Nov 8, 2018), for CUDA 9.0,选择cuDNN Runtime Library for Ubuntu16.04 (Deb),下载后执行命令sudo dpkg -i libcudnn7_7.4.1.5-1+cuda9.0_amd64.deb,就可以安装好cudnn了
安装tensorflow-gpu,当然可以用命令sudo pip3 install tensorflow-gpu,不过总是会报警告,所以,如果不喜欢这个警告的话,建议切换到root账号直接命令pip3 install tensorflow-gpu,就可以安装好了
后面的TensorFlow的使用就不再讲解了,只要可以正常import tensorflow,安装就应该没什么问题