RuntimeError: No such operator torchvision::nms问题解决方法

RuntimeError: No such operator torchvision::nms 问题解决方法:
最近在学习YoloV5,跑了代码,训练的时候没有问题,在测试的时候报错如下:
在这里插入图片描述
网上搜了一下,发现很多人遇到过这个问题,尤其是在跑Yolov4和Yolov5等对pytorch版本要求比较高的代码。但是解决方案说的大都是pytorch和torchvision的版本不匹配,让升级torchvision版本,或者重新安装pytorch。

但是因为pytorch较大,每次安装比较麻烦,且另一种简单升级torchvision的方法好像并不奏效。

本文这里分享一种简单、有效的解决方案:

因为Yolov5要求pytorch1.6以上版本,所以按照requirements.txt文件直接配置了虚拟环境:
python3.7+cuda10.1+pytorch1.6+torchvision0.7.0
在这里插入图片描述
报错时特意看了下环境:
在这里插入图片描述
pytorch版本是没有问题的,所以前面第一个epoch训练没有问题。

分析原因是因为torchvision版本虽然达到了0.7.0,但是没有和cuda10.1环境匹配,因为如果pytorch如果是在官网获得的安装命令,应该是这样的:

在这里插入图片描述

pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

这个时候安装的torchvision的版本自动的是0.7.0+cu101, 而通过requirements.txt安装则是和pytorch 分别安装的,导致版本不一致。

所以直接卸载原来的torchvision,安装torchvision==0.7.0+cu101即可,而不需要重新安装pytorch。

但是直接在命令行安装torchvision==0.7.0+cu101,又会报错,因为找不到对应包的路径:
在这里插入图片描述

这个时候直接把官网的安装命令的后部分链接加上就可以了:
在这里插入图片描述

pip install torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

可以看到问题快速解决了。

所以,下次遇到较高版本的pytorch环境时,可以通过同样的方式处理!

已标记关键词 清除标记
相关推荐
<div><h2> Bug</h2> <p>Getting this error on Colab:</p> <pre><code> Exception in device=TPU:4: Could not run 'torchvision::nms' with arguments from the 'XLA' backend. 'torchvision::nms' is only available for these backends: [CPU, BackendSelect, Named, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, Tracer, Autocast, Batched, VmapMode]. CPU: registered at /pytorch/vision/torchvision/csrc/vision.cpp:64 [kernel] BackendSelect: fallthrough registered at /pytorch/aten/src/ATen/core/BackendSelectFallbackKernel.cpp:3 [backend fallback] Named: registered at /pytorch/aten/src/ATen/core/NamedRegistrations.cpp:7 [backend fallback] AutogradOther: fallthrough registered at /pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:35 [backend fallback] AutogradCPU: fallthrough registered at /pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:39 [backend fallback] AutogradCUDA: fallthrough registered at /pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:43 [backend fallback] AutogradXLA: fallthrough registered at /pytorch/aten/src/ATen/core/VariableFallbackKernel.cpp:47 [backend fallback] Tracer: fallthrough registered at /pytorch/torch/csrc/jit/frontend/tracer.cpp:970 [backend fallback] Autocast: fallthrough registered at /pytorch/aten/src/ATen/autocast_mode.cpp:254 [backend fallback] Batched: registered at /pytorch/aten/src/ATen/BatchingRegistrations.cpp:555 [backend fallback] VmapMode: fallthrough registered at /pytorch/aten/src/ATen/VmapModeRegistrations.cpp:33 [backend fallback] Exception in device=TPU:2: Could not run 'torchvision::nms' with arguments from the 'XLA' backend. 'torchvision::nms' is only available for these backends: [CPU, BackendSelect, Named, AutogradOther, AutogradCPU, AutogradCUDA, AutogradXLA, Tracer, Autocast, Batched, VmapMode]. </code></pre> <h3>Environment</h3> <p>Colab Notebook: https://colab.research.google.com/drive/1HNn5YAQTenVXkllY9cITIVYFAo8ITJBX?usp=sharing</p> <ul><li> <p><code>IDE</code>: Please, use our python <a href="https://github.com/PyTorchLightning/pytorch-lightning/blob/master/pl_examples/bug_report_model.py">bug_report_model.py</a> template.</p> </li><li> <p><code>Colab Notebook</code>: `* CUDA:</p> <ul><li>GPU:</li><li>available: False</li><li>version: None</li></ul> </li><li>Packages:<ul><li>numpy: 1.18.5</li><li>pyTorch_debug: False</li><li>pyTorch_version: 1.8.0a0+d0df29a</li><li>pytorch-lightning: 0.8.1</li><li>tqdm: 4.41.1</li></ul> </li><li>System:<ul><li>OS: Linux</li><li>architecture:<h2>- 64bit</h2> </li><li>processor: x86_64</li><li>python: 3.6.9</li><li>version: #1 SMP Thu Jul 23 08:00:38 PDT 2020`</li></ul> </li></ul><p>该提问来源于开源项目:pytorch/xla</p></div>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页