YOLOv5常见报错原因及其解决方法

一、Pillow库

错误原因:缺少依赖库或者环境配置问题导致的

 解决方法:1、安装pillow库——pip install pillow

2、直接采用1的方法,仍然出错,表明安装的pillow与python当前版本不兼容。因此,需要先卸载piilow,再下载指定版本的pillow。以我当前版本为3.8的python为例,我应当下载pillow版本为6.2.1。具体操作如下:

pip uninstall pillow
pip install pillow==6.2.1

二、文件编码不匹配

错误原因:在读取 YAML 文件时出现了编码解析问题

解决方法:在使用 yaml.load(f, Loader=yaml.SafeLoader) 加载 YAML 文件之前,尝试指定文件的编码格式,可以尝试在打开文件时指定编码格式为 UTF-8,更改train.py文件64行,具体操作如下:

    with open(opt.data, 'r', encoding='utf-8') as f:
        data_dict = yaml.load(f, Loader=yaml.SafeLoader)  # data dict

三、SPPF

错误原因:common.py中没有定义 SPPF 属性

解决方法:打开common.py,在代码最前面,模块导入后面,加入以下代码:

##
import warnings

class SPPF(nn.Module):
    # Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher
    def __init__(self, c1, c2, k=5):  # equivalent to SPP(k=(5, 9, 13))
        super().__init__()
        c_ = c1 // 2  # hidden channels
        self.cv1 = Conv(c1, c_, 1, 1)
        self.cv2 = Conv(c_ * 4, c2, 1, 1)
        self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)

    def forward(self, x):
        x = self.cv1(x)
        with warnings.catch_warnings():
            warnings.simplefilter('ignore')  # suppress torch 1.9.0 max_pool2d() warning
            y1 = self.m(x)
            y2 = self.m(y1)
            return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))
##

四、np.int被弃用

错误原因:最近版本的 NumPy 已经不再支持 np.int 这个属性,而是直接使用内置的 int 类型

解决方法:删掉np.

五、在使用 TensorBoard 记录直方图时出现了问题

错误原因:在代码中尝试执行一些 NumPy 操作时,由于python包不兼容引起的

解决方法:更改 NumPy 版本,在pycharm终端输入以下代码:

pip uninstall numpy
pip install numpy==1.23.5

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值