YOLOV8报错:NotImplementedError: Could not run ‘torchvision::nms‘ with arguments from the ‘CUDA‘ backen

一、具体报错内容:

二、解决方法:

1.在终端中输入查看已下载的库:

pip list

输出结果:

发现torchvision版本出错

2.在终端输入以下代码删除错误版本的库

 pip uninstall torch torchvision torchaudio

3.依次尝试下列三个代码并运行,若继续报错则卸载尝试下一个

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

下载链接源于:Start Locally | PyTorch

我使用的是第三个,下载完成之后一定要检查这三个库的版本是否都是同一个cuxxx的版本!!!(如果遇到下载第三个,最后torchvision的cu版本与其他两个库的cu版本不一致,可以卸载,然后再次下载,我是这么解决的)

下载完成后可以直接看到或者用pip list查看

4.此时使用pip list可以看到三个都是相同的cuxxx版本 ,这样就可以使用GPU训练而非CPU

### 解决方案 当遇到`NotImplementedError: Could not run 'quantized::conv2d.new' with arguments from the 'CPU' backend`错误时,通常是因为PyTorch Quantization模块中的某些功能尚未完全实现或存在兼容性问题。为了处理这个问题,可以采取以下措施: #### 方法一:确认库版本一致性 确保所使用的`torch`和`torchvision`版本一致且都支持所需的硬件加速器(如CUDA)。如果两者版本不匹配,则可能导致部分API调用失败[^3]。 #### 方法二:降级至稳定版 有时最新的开发分支可能引入了暂时性的bug或是未完成的功能特性。尝试回滚到更稳定的旧版本可能会解决问题。 #### 方法三:修改模型结构适应量化需求 对于特定的操作符(例如卷积层),可以在执行前先解除量化(`dequant`),完成运算后再重新应用量化(`quant`)。这可以通过自定义子类化的方式实现: ```python import torch.nn as nn from torch import quantization class CustomConv2d(nn.Conv2d): def forward(self, input_tensor): # 去除输入张量上的量化属性 deq_input = self.dequant(input_tensor) # 执行标准的浮点数计算流程 float_output = super().forward(deq_input) # 将结果再次转换为量化形式返回 return self.quant(float_output) ``` 上述方法通过绕过直接对已量化的数据进行操作来规避潜在的技术难题[^2]。 #### 方法四:更新最新补丁 开发者社区经常发布修复此类问题的小型更新。保持软件栈处于最新状态有助于获得更好的性能和支持水平。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值