如何修改代码调用CPU版YOLOv5实现YouTube视频目标检测
YOLOv5适配CPU运行的修改方案
核心修改逻辑
强制指定模型和输入数据的运行设备为CPU,覆盖YOLOv5默认的CUDA自动检测逻辑,具体修改步骤如下:
- 第一步:修改模型加载代码
加载YOLOv5模型时显式指定device参数为cpu,示例代码:
如果加载时没有指定device参数,可在加载完成后追加设备迁移代码:# 原加载代码(如果写死了cuda的话) # model = torch.hub.load('ultralytics/yolov5', 'yolov5s', device='cuda:0') # 修改后 model = torch.hub.load('ultralytics/yolov5', 'yolov5s', device='cpu')model = model.to('cpu') - 第二步:删除/修改输入数据的CUDA迁移代码
检查代码中所有将输入图像、张量迁移到CUDA的操作,全部改为迁移到CPU,或者直接删除对应语句(YOLOv5会自动匹配模型所在设备):# 原代码 # img = img.to('cuda') # 修改后 img = img.to('cpu') # 或直接删除该行即可 - 第三步:(可选)脚本运行参数调整
如果你是直接使用YOLOv5官方的detect.py脚本运行推理,启动命令中追加--device cpu参数即可,无需修改源码。
注意事项
- 不需要单独下载CPU版本的YOLOv5权重文件,官方预训练权重同时支持CUDA和CPU推理
- CPU推理速度会远低于CUDA,处理长视频时可适当调低输入分辨率、选择更小的模型(比如yolov5n)提升运行速度
- 即使你安装的是CUDA版本的PyTorch,以上修改也可以正常生效,不需要重新安装CPU版本的PyTorch
内容的提问来源于stack exchange,提问作者neitherjames
相关产品推荐
相关产品推荐

