YOLO中yaml文件解读

YOLO中yaml文件解读

当我们使用yolo系列去做视觉方面的研究时,都会进行模型的训练,在yolo基础上进行模块的替换之后需要设置对应的yaml文件,但是yaml文件中的参数分别代表什么,应该如何调试是至关重要的。

参数解读

如下所示是yolov8的yaml文件中的backbone:

YOLOv8.0n backbone

backbone:

[from, repeats, module, args]

  • [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
  • [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
  • [-1, 3, C2f, [128, True]]
  • [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
  • [-1, 6, C2f, [256, True]]
  • [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
  • [-1, 6, C2f, [512, True]]
  • [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
  • [-1, 3, C2f, [1024, True]]
  • [-1, 1, SPPF, [1024, 5]] # 9

from表示该层的输入来源。它可以是一个整数,表示前一层的索引,或者是一个字符串,表示前一层的名称。这个参数用于指定该层的输入来自于哪一层。
-1表示该层的输入是上一层;

repeats表示该层的重复次数。有些backbone网络的某些层会被堆叠多次,通过设置repeats参数来指定重复的次数。

modules表示该层所使用的模块或组件的类型。可以是一个字符串,表示该层的类型,如"convolutional"(卷积层)、“maxpool”(最大池化层)等。

args比较重要表示该层的其他参数,以字典的形式给出。这些参数包括卷积核大小、通道数、步幅、填充等,具体取决于该层所使用的模块类型。

举个例子:
如下图所示的Conv卷积的参数为[64,3,2],也就是说,这些参数在初始化Conv时将模块的形参进行了更新。
在这里插入图片描述
首先可以在YOLO的nn/modules/conv.py中找到如下图所示的Conv的代码:
在这里插入图片描述
我们首先需要了解,在模块初始化时,这些模块的参数的作用
c1 :表示输入通道数,即输入特征图的深度或通道数。它决定了输入特征图的形状。
c2 :表示输出通道数,即卷积层中卷积核的数量,也是输出特征图的深度或通道数。它决定了输出特征图的形状。
k:表示卷积核的大小或尺寸。在这里,k 是一个整数,表示卷积核的高度和宽度相等。例如,k=3 表示使用一个 3x3 的卷积核。
s:表示卷积的步幅(stride),即卷积核在输入特征图上滑动的步长。默认情况下,步幅为 1,表示卷积核每次滑动一个像素。如果设置 s=2,则卷积核每次滑动两个像素。
p:表示卷积的填充(padding)。填充是在输入特征图周围添加额外的像素,以控制输出特征图的大小。p 可以是一个整数,表示在每个边缘添加相同数量的填充像素,也可以是一个元组 (p1, p2),其中 p1 表示在高度方向的填充数,p2 表示在宽度方向的填充数。默认情况下,没有填充。
g:表示分组卷积(group convolution)中的分组数。默认为 1,表示标准的卷积操作。当 g 大于 1 时,卷积核被分成 g 个子组,每个子组进行独立的卷积操作。分组卷积可以降低计算量,减少参数数量。
d:表示卷积操作的扩张(dilation)。扩张卷积是通过在卷积核元素之间添加间隔来增加感受野的。d 的默认值为 1,表示标准的卷积操作。当 d 大于 1 时,卷积核元素之间会有间隔。

之后,我们譬如再来讲字典[64,3,2]所传的参数,在传参数时,模块的c1表示当前层的输入,来源于上一层的输出,是不参与字典中的数据传输的,从c2这个形参开始,64代表c2 = 64, k = 3, s = 1;
一般的数据都是从c2开始依次传输。

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麒麟NG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值