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

TensorFlow-GPU仅调用CPU运行问题求助

解决TensorFlow-GPU未调用GPU的问题

先给你个最直接的验证方法:先跑一段极简代码确认TensorFlow到底有没有识别到你的GPU——这是排查的核心起点:

import tensorflow as tf
print(tf.__version__)
# TensorFlow 1.x版本用这句
print("GPU 是否可用: ", tf.test.is_gpu_available())
# 如果是TensorFlow 2.x版本,替换成下面这句
# print("GPU 是否可用: ", tf.config.list_physical_devices('GPU'))

如果输出显示GPU不可用,咱们一步步排查:

1. 先确认版本兼容性

CUDA 9.0对应的TensorFlow-GPU版本范围是1.10.x ~ 1.14.x,要是你装的TF版本太高(比如2.x),根本没法和CUDA9.0兼容。先查当前TF版本:

pip list | grep tensorflow

如果版本不对,卸载重装适配版本:

pip uninstall tensorflow-gpu
pip install tensorflow-gpu==1.13.1  # 这个版本和CUDA9.0适配性拉满

2. 检查CUDA和cuDNN的环境配置

  • 环境变量必须到位
    • Windows:把C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\binC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0\libnvvp添加到系统PATH
    • Linux:在~/.bashrc里追加:
      export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
      export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
      
      然后执行source ~/.bashrc让配置生效
  • cuDNN文件要放对位置
    把cuDNN解压后的binincludelib文件夹里的文件,分别复制到CUDA 9.0对应的目录下(Windows是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0,Linux是/usr/local/cuda-9.0

3. 验证显卡驱动版本

CUDA 9.0要求NVIDIA驱动版本至少是384.x(Windows)或384.81(Linux)。用nvidia-smi命令查看当前驱动版本,要是版本太低,去NVIDIA官网下载对应驱动安装就行。

4. 检查代码是否误禁用GPU

有时候代码里会不小心加了强制用CPU的设置,比如:

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "-1"  # 这句直接禁用GPU

如果有就删掉或者注释掉。也可以在代码开头手动开启GPU内存动态分配,避免显存占用问题:

import tensorflow as tf
gpu_devices = tf.config.experimental.list_physical_devices('GPU')
if gpu_devices:
    tf.config.experimental.set_memory_growth(gpu_devices[0], True)

5. 排查GPU是否被占用

nvidia-smi命令看看有没有其他进程在占用GPU资源,要是有的话,关掉这些进程再重新运行你的检测脚本。

等你完成上面的步骤,再跑之前的GPU验证代码,显示可用后再运行object-detection_tutorial.py,应该就能正常调用GPU加速了。

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

火山引擎 最新活动