双GPU环境下Keras无法识别GPU,求解决方法
TensorFlow/Keras无法识别GPU的排查解决思路
检查GPU驱动与版本兼容性
TensorFlow 2.11要求搭配CUDA 11.2、cuDNN 8.1,先确认NVIDIA驱动版本满足CUDA 11.2的最低要求(Windows/Linux均需≥450.80.02)。运行nvidia-smi查看GPU状态和驱动版本,确保硬件本身正常工作。验证CUDA与cuDNN的配置
- 确认系统环境变量配置正确:
CUDA_PATH指向CUDA 11.2的安装目录,PATH需包含CUDA_PATH\bin;cuDNN的lib目录需加入系统库路径(Linux为LD_LIBRARY_PATH,Windows为PATH)。 - 运行
nvcc --version验证CUDA编译器版本是否为11.2,确保安装的CUDA版本与TensorFlow要求匹配。
- 确认系统环境变量配置正确:
确认TensorFlow安装版本
检查是否安装了GPU版TensorFlow:运行pip list,若显示tensorflow-cpu则为CPU版本,需先卸载pip uninstall tensorflow-cpu,再重新安装对应版本的GPU版:pip install tensorflow==2.11。排查系统与硬件占用问题
- 通过
nvidia-smi查看GPU进程列表,确认没有其他进程(如挖矿软件、其他框架)占用GPU资源。 - Linux系统运行
lsmod | grep nvidia检查NVIDIA内核模块是否加载;Windows系统打开设备管理器,确认GPU设备无黄色感叹号(无驱动异常)。
- 通过
测试GPU基础调用
运行以下代码强制TensorFlow输出设备分配日志,根据报错定位问题:import tensorflow as tf tf.debugging.set_log_device_placement(True) a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]) c = tf.matmul(a, b) print(c)多GPU环境额外检查
- 进入BIOS确认两块GPU均已启用,未被硬件层面禁用。
- 再次运行
nvidia-smi,确认系统能识别到2块GPU的硬件信息。
内容的提问来源于stack exchange,提问作者AlonBA
相关产品推荐
相关产品推荐

