赞
踩
yolov8本身自带CBAM注意力,在nn/modules/conv.py文件最后面可以找到。
第一步:在conv.py添加名字
第二步:在_init_.py添加名字
第三步:在tasks.py添加名字
第四步:在tasks.py添加配置。715行左右
- elif m in {CBAM}:
- c1,c2 = ch[f],args[0]
- if c2 != nc:
- c2 = make_divisible(min(c2,max_channels)*width,8)
- args = [c1,*args[1:]]
第五步:复制yolov8.yaml文件重命名为myolov8_Att_CBAM.yaml
第六步:在myolov8_Att_CBAM.yaml里面添加注意力机制,添加的位置不同,效果也不一样,这个需要自研究一下,我添加在了第五层,在head这个部分标红的地方进行了修改,因为我们加了一次,所以这些也需要加一层,
[-1, 1, Conv, [64, 3, 2]]
是一个配置列表,用于定义YOLOv8模型中的一个卷积层。这个列表的每个元素都有特定的含义:
-1
:这是输入的索引,表示该层的输入来自于模型的上一层。
1
:这是重复的次数,表示这个卷积层只有一层。
Conv
:这是该层的类型,表示这是一个卷积层。
[64, 3, 2]
:这是一个列表,包含了卷积层的一些参数。
64
:这是卷积层的输出通道数。3
:这是卷积核的大小,这里是3x3。2
:这是卷积的步长,这里是2。所以,[-1, 1, Conv, [64, 3, 2]]
表示的是一个卷积层,它的输入来自于上一层,输出通道数为64,卷积核大小为3x3,卷积步长为2。这个卷积层不进行重复。希望这个解释对你有所帮助!
[[-1, 7], 1, Concat, [1]]
是一个配置列表,用于定义YOLOv8模型中的一个Concat模块。这个列表的每个元素都有特定的含义:
[-1, 7]
:这是输入的索引,表示该层的输入来自于模型的上一层(索引为-1)和第7层(索引为7)。
1
:这是重复的次数,表示这个Concat模块只有一层。
所以,[[-1, 7], 1, Concat, [1]]表示的是一个Concat模块,它的输入来自于上一层和第7层,拼接的维度是通道维度,这个Concat模块不进行重复。希望这个解释对你有所帮助!
第七步:在根目录下新建一个testmodel.py粘贴下面内容:
- # Ultralytics YOLO 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/565985推荐阅读
相关标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。