yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro

问题一: 运行detect.py 报错:AttributeError: Can’t get attribute ‘SPPF’ on <module ‘models.common’
在这里插入图片描述
原因:models文件夹的comon.py缺少SPPF类,这个类在yolov5的v6.0版本里有,这要复制过来即可,这里直接把代码发出来,省着各位朋友再去找了。

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))

注意:
(1)如果这个如果这个yolov5s.pt下载不下来的话,可以直接去我的资源里下载,里面包含了(yolov5s.pt、yolov5m.pt、yolov5l.pt、yolov5x.pt、yolov5n.pt),下载后只要复制到yolo文件夹中就可以使用。
在这里插入图片描述
在这里插入图片描述

(2)yolov5所在文件夹不要包含中文路径!很重要的一点。


运行detect.py在对应的runs/expn的文件夹里有以下的结果代表detect.py运行成功,yolov5自带两张图片用于检验模型。
在这里插入图片描述
问题二: coco128文件下载、coco128yaml文件更改、coco128数据集not exist问题

coco128.zip放在我的资源里了,有需要的可以下载。
1)运行train.py,遇到以下报错:
在这里插入图片描述
解决方法:将原文件中的main函数部分:
在这里插入图片描述
更改为:

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--weights', type=str, default='', help='initial weights path')
    parser.add_argument('--cfg', type=str, default='yolov5s.yaml', help='model.yaml path')

2)关于coco128\images\train2017 does not exist 问题
在这里插入图片描述
此问题需要对coco128yaml文件更改

这个搞了好久才终于解决,解决办法就是:
在yolov5文件夹中新建一个文件夹,我取名是MyData(任何名字都可以,不要是中文)用于存放coco128的images和labels
将coco128中的images和labels分别复制过来
在这里插入图片描述
如下图所示,然后将data文件夹中的coco128.yaml train,val路径更改,即可解决
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

train: MyData/images/train2017  # 128 images
val: MyData/images/train2017  # 128 images

运行train.py
在这里插入图片描述
3) 出现BrokenPipeError,这个是线程问题
在这里插入图片描述
将workers的默认参数更改一下就可以了。
在这里插入图片描述

版权声明:本文为CSDN博主「jq_98」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jq_98/article/details/121271146

jq_98

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

YOLOv5人脸口罩检测

YOLOv5人脸口罩检测 Pytorch框架下YOLOv5口罩检测 代码和训练权重:https://download.csdn.net/download/weixin_51154380/58000038 人脸口罩检测结果&#x