You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

已安装CUDA v10.1,TensorFlow仍无法使用GPU运行求助

解决Keras在TensorFlow 2.0中优先使用CPU而非GPU的问题

我之前也踩过这个坑,明明TensorFlow能识别到GPU,可模型就是死磕CPU跑,折腾了好一阵才找到几个有效的解决方向,你可以挨个试试:

1. 确认用的是TensorFlow内置的Keras

TensorFlow 2.0之后,官方已经把Keras整合进来了,如果你还是单独安装Keras包并用import keras导入,很可能会出现兼容性问题,强制跑在CPU上。

  • 改个导入方式就行:换成from tensorflow import keras或者import tensorflow as tf,之后所有模型构建、编译都用tf.keras开头的API。

2. 手动指定GPU设备运行

有时候自动设备分配会抽风,咱们手动指定GPU运行更稳妥,有两种简单方式:

  • 方式一:用上下文管理器包裹训练代码
    把你的模型构建、训练代码都放在这个上下文里,强制让它用GPU:
    with tf.device('/device:GPU:0'):
        # 这里放你的模型定义、编译、训练代码
        model = tf.keras.Sequential([...])
        model.compile(optimizer='adam', loss='categorical_crossentropy')
        model.fit(x_train, y_train, epochs=10)
    
  • 方式二:开启GPU内存增长并设置可见设备
    在代码最开头加这段,既能让TensorFlow按需使用GPU内存,也能明确指定用GPU:
    physical_devices = tf.config.list_physical_devices('GPU')
    if physical_devices:
        tf.config.set_visible_devices(physical_devices[0], 'GPU')
        tf.config.experimental.set_memory_growth(physical_devices[0], True)
    

3. 重点检查CUDA版本匹配!

你装的是CUDA 10.1,但TensorFlow 2.0.0只支持CUDA 10.0!这很可能是核心问题!版本不匹配的话,就算能识别到GPU,也没法正常调用。

  • 解决方案:卸载CUDA 10.1,安装CUDA 10.0,再搭配对应版本的cuDNN(7.4.1及以上),装完重启电脑再测试。

4. 准确验证GPU是否在工作

Windows任务管理器的GPU监控有时候不太准,你可以用更靠谱的方式确认:

  • 运行代码验证:
    print(tf.test.is_gpu_available())
    print(tf.config.list_logical_devices('GPU'))
    
  • 用NVIDIA官方工具:打开命令行输入nvidia-smi,查看训练过程中GPU的显存占用和利用率,这个比任务管理器准确多了。

5. 清理环境残留冲突

就算你卸载了tensorflow只留tensorflow-gpu,可能还有残留的配置或者缓存导致环境混乱:

  • 步骤:
    1. 完全卸载两个包:pip uninstall tensorflow tensorflow-gpu -y
    2. 清理pip缓存:pip cache purge
    3. 重新安装指定版本:pip install tensorflow-gpu==2.0.0
    4. 一定要重启Jupyter Notebook!内核不会自动加载新环境的。

内容的提问来源于stack exchange,提问作者SHELENDRA VASHISHTHA

火山引擎 最新活动