UserWarning: No NMS is available. Please upgrade torchvision to 0.3.0+
warnings.warn(‘No NMS is available. Please upgrade torchvision to 0.3.0+’)
好好的环境布吉岛咋的就坏了,遇到了这个问题。
当然,实在不知道怎么解决就重新安装一个新的虚拟环境就好了,但是这个环境已经安了很多包了,直接丢掉太浪费了。
而且我还提示说cuda也不支持了,就很奇怪。
首先测试下torch还能用不
import torch
import torchvision
print(torch.cuda.is_available())
import torch
print(torch.__version__)
print(torchvision.__version__)
直接显示false且torch变成了1.10.1+cpu版本,我想应该是不小心给他更新了导致版本不匹配。
那就先卸掉重装一个torch看看
方法1:conda方法
conda uninstall pytorch
conda uninstall libtorch
方法2:
pip uninstall torch
我是用的第二种。
然后去官网下载torch链接
选择gpu版本
conda install pytorch torchvision torchaudio cudatoolkit=10.2
安装成功后,依旧出现这个问题,所以可以确定是版本不匹配造成的了。那就去下载个旧版本的torch,我之前一直用的1.7.1,就根据之前的来吧。
先看下自己的cuda是什么版本的之前我有写过相关文章
看下自己的python版本
conda install pytorch1.7.1 torchvision0.8.2 torchaudio==0.7.2 cudatoolkit=10.2
我用官网这个失败了
记得切到whl位置
pip install torch-1.7.1-cp37-cp37m-win_amd64.whl
下载torchvision
查看torch对应的torchvision版本
网址
输入这个:
pip install torchvision-0.8.2-cp37-cp37m-win_amd64.whl
再测试下:
import torch
import torchvision
print(torch.cuda.is_available())
# import torch
print(torch.__version__)
print(torchvision.__version__)
除了torch环境有问题外,我后面又出现了该问题,但是我的环境此时是正确的了,为此找到了github上的一个方法:
将nms代码中:
if torchvision.__version__ >= '0.3.0':
_nms = torchvision.ops.nms
else:
warnings.warn('No NMS is available. Please upgrade torchvision to 0.3.0+')
sys.exit(-1)
替换为:
from packaging import version
if version.parse(torchvision.__version__) >= version.parse('0.3.0'):
_nms = torchvision.ops.nms
else:
warnings.warn('No NMS is available. Please upgrade torchvision to 0.3.0+')
仅此借鉴参考,不同情况下可能有不同的问题,一般出现userwarning的警告,大多都是版本不兼容的情况,可以首先去排查下自己的版本问题。