You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu环境下TensorFlow无法调用GPU问题求助

解决TensorFlow GPU使用率为0%、仅靠CPU运行的问题

结合你的硬件环境(GTX1060 6GB、Ryzen 7 1700x)和系统配置(Ubuntu 18.04、CUDA9.0、驱动390.59),我帮你梳理几个关键排查步骤,一步步定位问题:

1. 先确认TensorFlow真的能识别到你的GPU

别着急跑retrain.py,先写个小脚本验证下TensorFlow GPU版本是否正常识别硬件:

import tensorflow as tf
print(f"TensorFlow版本: {tf.__version__}")
print(f"可用GPU列表: {tf.config.list_physical_devices('GPU')}")

如果输出里看不到你的GTX1060,大概率是TensorFlow版本和CUDA9.0不兼容——TensorFlow 1.x里支持CUDA9.0的是1.10到1.12版本左右,要是你装的是更高版本的tensorflow-gpu,肯定没法正常调用GPU,得卸载重装对应版本。

2. 检查retrain.py的运行参数有没有强制走CPU

默认情况下retrain.py会自动优先用GPU,但有时候可能不小心加了强制CPU的参数。看看你启动脚本的命令里,有没有--device=cpu这种参数,或者之前设置过CUDA_VISIBLE_DEVICES=-1的环境变量(这个会让TensorFlow看不到GPU)。要是有,去掉这些再重新运行。

另外,要是你的--batch_size设得太小(比如默认的32甚至更小),GPU可能刚启动就完成了小批量计算,看起来使用率就是0。可以试着把batch size调到64或者128,给GPU足够的计算任务。

3. 验证CUDA和驱动环境是否正常工作

先在终端跑两个命令确认基础环境没问题:

nvcc --version
nvidia-smi

nvidia-smi得显示你的GTX1060和390.59的驱动版本,nvcc要输出CUDA9.0.176的信息。要是这两个命令报错,说明CUDA或者驱动安装有问题,得先把环境修对——比如驱动和CUDA版本不匹配?不过390.59是支持CUDA9.0的,大概率是环境变量没设对。

打开~/.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生效,再重启终端试试。

4. 看看是不是数据集太小导致GPU“没事干”

retrain.py里的图像预处理(解码、缩放、归一化这些)都是在CPU上做的,只有模型的训练计算才会用到GPU。如果你的数据集特别小,CPU很快就把预处理做完了,GPU还没来得及启动就没事干了,使用率自然显示为0。

可以试试:

  • 扩充你的数据集规模,让GPU有持续的计算任务
  • 调整--num_preprocessing_threads参数,增大预处理的线程数,让CPU更快喂数据给GPU

5. 强制TensorFlow绑定GPU运行

要是前面都没问题,那就强制指定GPU运行试试,在启动retrain.py前加个环境变量:

CUDA_VISIBLE_DEVICES=0 python retrain.py [你的其他训练参数]

这里的0是你的GPU设备编号(单GPU的话就是0),这个命令会让TensorFlow只看到这块GPU,避免它自动选CPU。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:50:09