今天用Yolov5目标检测模型进行Flask部署的时候,遇见一个问题:RuntimeError: "slow_conv2d_cpu" not implemented for 'Half'
。在王宏网上查阅了很久,发现大多数都是在讲有关Half的精度问题。
具体报错如下:
他人的解决方案
这里先讲下Half()函数
的作用:
torch.half()
函数将模型的所有浮点参数和缓冲区转换为半精度(16位)浮点数。这可以减少内存占用并提高计算效率,同时保持较高的计算精度 。
这里给出我在网上找到的一些解决方案:
- 解决报错:“slow_conv2d_cpu“ not implemented for ‘Half‘ | 训练DreamBooth
- 复刻yolo系列时出现的BUG及解决方法
以上问题在进行网页前端部署的时候可能解决不了问题,但是训练的时候应该还是有用的。
我的解决方案
在查阅很久没有找到合适的解决方案的时候,我想着是不是自己torch版本
和torchvision版本
不匹配的缘故,所以我查看了自己安装的库,如下:
可以清晰的看到,我的torchvision版本
确实和我的torch版本
不太匹配,因此我进入到pytorch官网,重新安装了版本以后,我的库版本具体如下:
最后,完美的解决了问题,并部署成功。
具体解决步骤为如下:
- 首先,进入pytorch官网;
- 查找到自己适应的版本,这里我们选择查看以前的版本。
- 选择自己的版本,这里我的是torch==1.13.1+cu117的,具体命令为:
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
- 最后复制该命令到终点,进行安装对应版本的库。安装成功后如下: