目录
- 前置条件
- 硬件条件
- 当前日期
- 检查方法
- 解决方法
- 版本列表
- tensorflow==2.10.0
- CUDA==12.1
- cudnn==8.8
- 结果
前置条件
硬件条件
R5-5600G + RTX4060
当前日期
当前时间是2023年11月27日,请注意本文的时效性,保不齐后续出现某个组件的更新能够直接解决这个问题。
检查方法
运行以下python代码
import tensorflow as tf
gpus = tf.config.experimental.list_physical_devices(device_type='GPU')
cpus = tf.config.experimental.list_physical_devices(device_type='CPU')
print(gpus, cpus)
如果运行结果为
[] [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
那么恭喜,说明你的tf仅仅是检测不到GPU设备,CPU设备还是能够检查到的。
但是,好像从某个版本开始,tf就不区分CPU版和GPU版了,所以这个问题通过 install tensorflow-gpu 解决的方法已经过时了。
解决方法
整个解决思路也是看了别的大佬的文章整理的1 2,这里我直接给出结论:大概率是tensorflow的版本安装得太高了,将版本降到2.10.0,并且将CUDA和cudnn的版本对齐(高了的话记得先卸载干净),我将我对齐的版本贴上。
版本列表
tensorflow==2.10.0
CUDA==12.1
cudnn==8.8
结果
再次检查,输出变为
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')] [PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU')]
则代表成功。
在keras项目开头加上
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"
训练速度直接翻了三倍。
https://blog.csdn.net/bragen/article/details/129131278 ↩︎
https://blog.csdn.net/ly869915532/article/details/124542362 ↩︎