显卡配置:GeForce RTX 2080 Ti
系统:18.04
1. 版本选择
https://www.tensorflow.org/install/source#common_installation_problems
https://blog.csdn.net/qq_27825451/article/details/89082978
Linux, GPU
Version Python version Compiler Build tools cuDNN CUDA
tensorflow-2.0.0 2.7, 3.3-3.7 GCC 7.3.1 Bazel 0.26.1 7.4 10.0
2. ubuntu 系统安装
3. NVIDIA 驱动安装
3.1 禁用nouveau并重启
输入 lsmod | grep nouveau
有输出,说明nouveau正在工作
sudo gedit /etc/modprobe.d/blacklist.conf
blacklist nouveau options
nouveau modeset=0
重启, 输入 lsmod | grep nouveau
无输出,正常,检验通过
3.2 辅助工作
sudo yum -y install gcc-c++
sudo apt-get update
3.3 下载 run 文件
选nvidia驱动版本
ubuntu-drivers devices
下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
3.4 安装
安装驱动前联网,后续要安装一个包,可以更改一下源到清华源,速度快一些
通过Ctrl+Alt+F3
进入终端
service lightdm stop
注意:此步要进行,因为会与nvidia 的驱动冲突,先关闭
sudo chmod +x NVIDIA-Linux-x86_64-430.26.run
sudo bash NVIDIA-Linux-x86_64-430.26.run –no-opengl-files –no-x-check
注意: 必须加参数*–no-opengl-files*,否则页面循环登录
过程中的参数选择参考:https://blog.csdn.net/wf19930209/article/details/95237824
sudo apt install lightdm
service lightdm start
关于 lightdm参考链接:(https://blog.csdn.net/chentianting/article/details/85089403)
回到主见面 ctrl + alt + f2
3.6 result
nvidia-smi
3.5 采坑记录
在我的系统中 直接采用 sudo apt-get install nvidia-settings nvidia-driver-430 nvidia-prime
的方式会陷入开机界面循环登录的过程。
但是该方法在很多链接中有效,比如:https://blog.csdn.net/BigData_Mining/article/details/99670642
应该是看各自的电脑情形不同有不同的反应。
4. cuda 10.0安装
注意此处下载cuda10.0 而非10.1, cuda10.1 不兼容 tensorflow2.0
下载链接:
http://developer.nvidia.com/cuda-downloads
sudo sh cuda_XXX_linux.run
- 安装过程
不安装 driver(原因步骤2已安装)
- 通过bashrc添加环境变量,三部曲操作,打开,添加,生效
gedit ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
source ~/.bashrc
- 检验cuda安装成功与否
cd /usr/local/cuda/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
出现Result=Pass 安装成功
cuda10.1 卸载
sudo /usr/local/cuda-10.1/bin/cuda-uninstaller
同时按照三部曲,打开,添加,生效; 注释掉 cuda的PATH
#export PATH="/usr/local/cuda-10.0/bin:$PATH"
#export LD_LIBRARY_PATH="/usr/lcoal/cuda-10.0/lib64:$LD_LIBRARY_PATH"```
5.cudnn 安装
登录Nvidia账户,下载: https://developer.nvidia.com/rdp/cudnn-archive, 选择cuDNN library for linux
版本
解压并进入文件夹 + 复制
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
检验安装成功与否
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
从上到下以此7 6 1 表明版本7.6.1
6. ananconda python 3.6 安装
清华源镜像下载anaconda版本,注意版本对应,最新3-5.3.0对应着python3.7与tensorflow要求不符合,下载Anaconda3-5.2.0
下载以后安装, 注意为进一步使用Jupyter, Spyder本文安装链接在/usr/local/anaconda3
(参考链接:https://www.cnblogs.com/jisongxie/p/10053760.html)
sh Anaconda3-5.2.0-Linux-x86_64.sh
第二步修改安装路径
三部曲环境变量:
sudo gedit /etc/profile
文本末尾
export PATH=/usr/local/anaconda3/bin:$PATH
source /etc/profile
关机重启有效,终端输入python有anaconda字样
anaconda 卸载
- 删除目录
rm -rf /usr/local/anaconda3
此处如果是安装到Home文件即
rm -rf ~/anaconda3
- 三部曲清理路径
sudo gedit /etc/profile
或者sudo gedit ~/.bashrc
注释掉与anaconda3相关的内容#export PATH=/usr/local/anaconda3/bin:$PATH
或 如链接https://blog.csdn.net/weixin_41528941/article/details/90903584
生效source /etc/profile
或source ~/.bashrc
重开终端 or 开机重启 有效,输入Python无任何输出
7. tensorflow 2.0 安装
sudo pip install --upgrade pip
sudo pip install tensorflow-gpu==2.0.0-alpha0
- t替代方法: 迅雷下载wheel文件再进行安装
https://pypi.tuna.tsinghua.edu.cn/packages/1a/66/32cffad095253219d53f6b6c2a436637bbe45ac4e7be0244557210dc3918/tensorflow_gpu-2.0.0a0-cp36-cp36m-manylinux1_x86_64.whl
sudo pip install tensorflow_gpu-2.0.0a0-cp36-cp36m-manylinux1_x86_64.whl
ceshi:
https://tensorflow.google.cn/tutorials/quickstart/beginner
from __future__ import absolute_import, division, print_function, unicode_literals
# Install TensorFlow
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train, y_train, epochs=1)
model.evaluate(x_test, y_test, verbose=2)