一、摘要
报错的直接原因是torchvision库中的文件: ... python311\Lib\site-packages\torchvision\ops\boxes.py 第41行,
> return torch.ops.torchvision.nms(boxes, scores, iou_threshold)
实际上是指,在当前的torchvision版本下不支持cuda的调用,需要检查环境中torchvision的对应关系。
二、解决办法
1.直接修改boxes.py代码,方法见下文
------- 文中的方法可保存现有pytorch torchvision环境不变。
2.检查本机的torch torchvision 版本(推荐,楼主方案)
按照下面步骤
命令行输入 >python import torch,torchvision print(torch.__version__) print(torchvision.__version__) 查看当前环境的版本 |
然后根据网上torch torchvision对应关系,找到当前的pytorch下可用的torchvision gpu版本 |
从https://download.pytorch.org/whl/torch_stable.html 选择自己的环境下载whl包,并在任意目录pip install *.whl |
然后运行你的程序,就不会提示nms 不支持cuda backends了。
----------------------
举例:
我的报错环境是 cu121 + torch 2.2.1 torchvision :0.7 (cpu)
对应torch 2.2.1 的 torchvision版本是 0.17.1 ( Previous PyTorch Versions | PyTorch)
其中cuda版本可以比官方的版本高,可以不用强制要求一样。
因此我下载的whl文件是 torchvision-0.17.1+cu121-cp311-cp311-win_amd64.whl
然后pip install torchvision-0.17.1+cu121-cp311-cp311-win_amd64.whl 即可。