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

问题一: 运行detect.py 报错:AttributeError: Can’t get attribute ‘SPPF’ on 在这里插入图片描述
原因: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文件夹中就可以使用。
在这里插入图片描述
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第1张图片

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


运行detect.py在对应的runs/expn的文件夹里有以下的结果代表detect.py运行成功,yolov5自带两张图片用于检验模型。
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第2张图片
问题二: 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分别复制过来
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第3张图片
如下图所示,然后将data文件夹中的coco128.yaml train,val路径更改,即可解决
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第4张图片
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第5张图片
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第6张图片

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

运行train.py
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第7张图片
3) 出现BrokenPipeError,这个是线程问题
yolov5模型问题解决SPPF找不到、yolov5smlx.pt文件下载、coco128文件下载、coco128yaml文件更改、coco128数据集not exist、BrokenPipeErro_第8张图片
将workers的默认参数更改一下就可以了。
在这里插入图片描述

你可能感兴趣的:(pytorch,深度学习,python,计算机视觉,目标检测)