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

基于YOLOv7项目遇Torch识别GPU但Torchvision报NotImplementedError问题

解决torchvision::nms CUDA后端NotImplementedError问题

针对你在YOLOv7项目中遇到的torchvision::nms不支持CUDA后端的问题,以下是几种可行的解决方法:

1. 严格匹配PyTorch与torchvision版本

版本不兼容是这类问题的常见诱因。先查看当前版本:

import torch
import torchvision
print(torch.__version__)
print(torchvision.__version__)

根据PyTorch官方版本对应关系,卸载现有版本后重新安装匹配组合。例如,若PyTorch为2.0.1+cu118,安装对应torchvision:

pip uninstall torch torchvision
pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118

2. 替换YOLOv7中的NMS实现

YOLOv7自带了CUDA版本的自定义NMS,可修改代码跳过torchvision的nms:

  • 找到代码中调用torchvision.ops.nms的位置(通常在utils/general.py或同类文件)
  • 替换为YOLOv7内置的utils.torch_utils.nms或编译后的torch.ops.yolo.nms

示例替换:

# 原代码
from torchvision.ops import nms
# 替换为
from utils.torch_utils import nms as torch_nms
# 调用时改用torch_nms

3. 检查CUDA环境与编译支持

  • 确认系统CUDA_HOME环境变量指向正确的CUDA安装路径(如/usr/local/cuda-11.8)
  • 若通过源码编译torchvision,需明确指定CUDA支持:
git clone https://github.com/pytorch/vision.git
cd vision
git checkout v0.15.2
export CUDA_HOME=/usr/local/cuda-11.8
python setup.py install --with-cuda

4. 验证CUDA真实可用性

确认PyTorch的CUDA支持并非仅识别GPU,而是实际可运行:

print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))
# 运行简单CUDA张量运算验证
x = torch.tensor([1.0]).cuda()
print(x)

若验证失败,需先修复PyTorch的CUDA配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:56:04