Windows10下使用CUDA时YOLOv8崩溃求助
环境信息
- CUDA版本:12.1
- PyTorch相关组件:
torch==2.1.0+cu121torchaudio==2.1.0+cu121torchvision==0.16.0
- Ultralytics版本:
ultralytics==8.0.132 - GPU:NVIDIA GeForce RTX 2060 SUPER
CUDA可用性验证代码及结果:
import torch print(torch.cuda.is_available()) print(torch.cuda.get_device_name(0))
输出:
True NVIDIA GeForce RTX 2060 SUPER
问题
运行原CPU环境下正常的脚本时,执行model.track(source=source, show=False, stream=True, verbose=False)行崩溃,报错提示无法在CUDA后端运行torchvision::nms,该算子仅支持CPU等后端。已尝试重装CUDA、PyTorch和Ultralytics,问题仍未解决。
解决方案
- 统一torchvision的CUDA版本
当前torchvision为CPU版本,需安装匹配cu121的版本,执行命令:
pip install torchvision==0.16.0+cu121 --index-url https://download.pytorch.org/whl/cu121
确保torch、torchvision的CUDA版本完全一致,避免混合环境导致算子不兼容。
- 替换NMS后端实现
在初始化模型前添加代码,强制使用PyTorch原生CUDA兼容的NMS:
import torch import torchvision # 替换torchvision NMS为PyTorch原生算子 torchvision.ops.nms = torch.ops.torchvision.nms
或者在Ultralytics模型配置中指定NMS后端:
from ultralytics import YOLO model = YOLO('your_model_path.pt') # 强制使用PyTorch NMS model.overrides['nms_backend'] = 'torch' results = model.track(source=source, show=False, stream=True, verbose=False)
- 降级Ultralytics版本
部分新版本Ultralytics与PyTorch 2.1.0+cu121组合存在适配问题,尝试降级到稳定版本:
pip install ultralytics==8.0.120
- 明确指定设备运行
调用track时显式指定CUDA设备,确保模型和数据都加载到GPU:
results = model.track(source=source, show=False, stream=True, verbose=False, device='cuda')
内容的提问来源于stack exchange,提问作者liran bratt
相关产品推荐
相关产品推荐

