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

指定CPU运行YOLOv5却仍出现CUDA相关提示的原因是什么

YOLOv5指定CPU运行仍触发CUDA告警的原因及解决方法

问题原因

  • 你遇到的不是模型真的在使用GPU,只是YOLOv5内部逻辑触发的告警,你可以通过print(model.device)确认最终模型实际运行在CPU上。
  • 触发告警的核心原因是YOLOv5加载模型时会先执行全局CUDA环境预检查,即使你传入的device参数最终是CPU,内部检查逻辑也会先尝试探测CUDA是否可用,探测失败就会抛出该警告。
  • 部分场景下,你加载的预训练权重文件本身是在CUDA环境下保存的,YOLOv5会先尝试将权重加载到原保存设备,再迁移到你指定的CPU,这个过程也会触发CUDA不可用的告警。

解决方案

  • 直接强制指定device='cpu',不要使用cuda if torch.cuda.is_available() else 'cpu'的三元判断。你已经明确当前环境输出的设备是CPU,直接写死device参数可以跳过YOLOv5的CUDA探测分支,避免告警。修改后的加载代码如下:
    model = yolov5.load(model, device='cpu')
    
  • 如果你需要保留动态判断设备的逻辑,可以在代码入口处添加指定警告的过滤规则,直接屏蔽该类告警,代码如下:
    import warnings
    warnings.filterwarnings("ignore", message="User provided device_type of 'cuda', but CUDA is not available. Disabling")
    
  • 模型加载完成后手动调用一次CPU迁移操作,确认模型完全运行在CPU上:
    model = model.to('cpu')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:36:08