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

Colab训练YOLOv5指定device为cpu仍报CUDA不可用警告如何解决?

问题产生原因

  • YOLOv5的底层初始化逻辑优先级问题:多数版本的YOLOv5在加载入口参数前,会先执行PyTorch的CUDA环境自动检测逻辑,你传入的--device cpu参数是在检测逻辑执行后才会生效,因此会先触发CUDA不可用的警告,该警告不影响后续实际使用CPU训练。
  • Colab运行时环境残留:如果你的Colab会话此前切换过GPU运行时再改为CPU运行时,环境中会残留CUDA相关的环境变量配置,PyTorch检测到配置后会尝试调用CUDA,最终触发不可用的警告。
  • YOLOv5版本bug:部分老旧版本的YOLOv5train.py存在参数传递漏洞,你传入的device参数没有正确传递到PyTorch的设备初始化模块,导致底层默认走CUDA检测逻辑。

排查解决方法

  • 确认Colab运行时配置:点击顶部菜单栏「修改」->「笔记本设置」,确认硬件加速器选项为「无」,保证运行时环境和参数配置匹配。
  • 全局屏蔽CUDA检测:在执行训练命令前先运行以下代码,强制PyTorch跳过CUDA检测:
    import os
    os.environ["CUDA_VISIBLE_DEVICES"] = "-1"
    
    也可以直接在训练命令前添加环境变量声明,一步生效:
    !CUDA_VISIBLE_DEVICES=-1 python train.py --img 415 --batch 16 --epochs 30 --data dataset.yaml --device cpu --weights yolov5s.pt --cache
  • 修正参数写法:将--device cpu改为--device 'cpu',避免部分版本的参数解析器对无引号的字符串参数识别异常。
  • 升级YOLOv5版本:拉取官方仓库的最新代码,修复老旧版本的参数传递bug。
  • 验证实际运行设备:训练启动后查看控制台输出的设备信息,只要明确显示Using CPU,就说明警告仅为前置检测触发,不影响实际训练,无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:36:08