YOLOV5添加注意力机制SE后,训练时网络结构没有显示SE

问题遇到的现象和发生背景

YOLOv5添加注意力机制SE后,训练时显示的网络结构并没有SE这一层

遇到的现象和发生背景,请写出第一个错误信息

按照网络上的教程:1 将SE的代码放入common.py
2 修改yolo.py中的parsel_model函数,添加SE类名
3 修改yolov5m.yaml和yolov5s.yaml文件中的一些数据(我用的是yolov5m.pt)
4 运行yolo.py就可以显示出SE层
运行出来确实能显出SE层

img


但是我在训练的时候去没有显示:

img

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

我以为是yolo.py中的参数"Yolov5s.yaml"没修改,因为我用的是Yolov5m.pt,之后修改为yolovm.yaml:

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--cfg', type=str, default='yolov5s.yaml', help='model.yaml')
    parser.add_argument('--batch-size', type=int, default=1, help='total batch size for all GPUs')
    parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    parser.add_argument('--profile', action='store_true', help='profile model speed')
    parser.add_argument('--line-profile', action='store_true', help='profile model speed layer by layer')
    parser.add_argument('--test', action='store_true', help='test all yolo*.yaml')
    opt = parser.parse_args()
    opt.cfg = check_yaml(opt.cfg)  # check YAML
    print_args(vars(opt))
    device = select_device(opt.device)


还是不行,训练的时候依然不会显示出SE层

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

我想问一下,添加SE层成功,运行train.py训练的时候不会显示SE吗?
还是说我并没有添加成功(尽管运行yolo.py显示了SE层)

在 YOLOv5 中添加注意力机制 SE 后,如果在训练时 SE 层没有显示,可能是因为在训练时 SE 层并没有真正被调用。

在训练时,SE 层会被调用的条件是:

在代码中应该有一个对应的函数调用,这个函数会接收输入并返回输出。
调用的参数应当正确,包括输入维度、输出维度以及其他参数。
如果这些条件都满足,那么在训练时就应该能看到 SE 层的输出。

为了解决这个问题,我们需要检查上述条件是否都满足,并检查代码中是否有任何问题。可以尝试把 SE 层的函数单独提出来测试,或者查看报错信息,以便了解具体的错误原因。

此外,还可以尝试使用已经训练好的模型进行测试,看看是否能看到 SE 层的输出。如果能看到,那么可能是训练过程中出了问题,如果不能看到,可能是模型本身的问题。

提供参考实例【YOLOv3 pytorch版本 训练自己的数据集+加se/cbam注意力】,链接:https://blog.csdn.net/qq_39346945/article/details/125374021