ubuntu18.04上安装tensorflow

网上CSDN的教程凡是让你装最新的CUDA9.1或者9.2的都是错误的,真是垃圾,害得我浪费了好多时间。因为默认的编译好的python 的tensorflow模块不支持9.1及以上,除非你自己编译tensorflow的python module。另外凡是让你用deb安装cuda也都是错的。nvidia的16.04和17.04的deb里面都自带了nvidia的driver,跟ubuntu 18.04完全不兼容,只能是用run文件来安装,并且禁止安装内置的driver才行。

1.首先用sudo ubuntu-drivers autoinstall 来安装,默认是装的的nvidia-390
2.然后下载CUDA 9.0的17.04的run安装文件,注意18.04上默认安装的gcc和g++是7.2的,需要安装6.0的版本,然后用alternative切换使用6.0版本的编译器。安装时要禁止安装内置的driver,否则会使ubuntu进入错误的状态,无法恢复,只能重装系统,我今天重装了5,6次ubuntu
3.安装cudnn 7.05 for linux的版本。
4.安装tensorflow-gpu,写一个小程序来确认安装是否正确。

注意tensorflow-gpu的安装包很大,下载的时候总是被墙搞中断。
用下面的命令加大超时设置安装好一些
sudo apt-get install libcupti-dev
pip3 install --retries 100 --timeout 150 tensorflow-gpu
另外,注意安装pip3的模块时不要加sudo

验证小程序
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

最后参考的是两个老外的教程
https://medium.com/@taylordenouden/installing-tensorflow-gpu-on-ubuntu-1...
https://askubuntu.com/questions/1033489/the-easy-way-install-nvidia-driv...

CSDN上的教程也是醉了,写了洋洋洒洒的一大篇,全是错的。