前提1:
tensorflow、cuda、cudnn、python四者要一致,一个不一致就会导致失败,版本对照表如下:
具体应该安装哪个版本的tensorflow呢?要根据电脑上的cuda驱动版本,确定要安装的cudatllokit版本,进一步根据cudatllokit版本确定cudnn版本,最终确定tf版本和python版本。
注:CUDA 有两种API,分别是CUDA驱动API和CUDA运行时API,即 Driver API和Runtime API 。
nvidia-smi 的结果中,最右边的就是CUDA 驱动API的版本(也就是我们要参考的),中间的是GPU 驱动版本 。
而nvcc -V的结果是 CUDA Runtime API的版本。
我的情况:nvidia-smi查看CUDA驱动版本是11.0,nvcc -V显示的cuda运行时版本是9.0,则我应该安装cudatoolki=11.0或者小于11.0的。
确定了cudatoolki=11.0,根据对照表,可以安装cudnn=8.2,可以进一步确定tf=2.4.1和python=3.8。
前提2:
安装好了anconda,并换为清华源。
具体命令:
1、建一个新的需要的python=3.8的环境。我的环境名为tfl38,可以随便设。
conda create -n tfl38 pip python=3.8
2、安装cudatoolki=11.0和cudnn=8.2
conda install cudatoolkit=11.0 cudnn=8.2
3、安装tensorflow=2.4.1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow==2.4.1
4、检查GPU是否可用。
先进入python
import tensorflow as tf
tf.__version__ #查看tf版本
tf.config.list_physical_devices('GPU') #输出[]列表表示GPU可用
注:不要用下边这个来检查gpu是否可用,会报错,但不是gpu的问题,是因为is_gpu_available()已被弃用。具体如下:is_gpu_available (from tensorflow.python.framework.test_util) is deprecated and will be removed in a future version.
tf.test.is_gpu_available()
5、检查CUDA是否可用
tf.test.is_built_with_cuda() #输出true则表示可用