在代码注释中看到C2f其实是
CSP Bottleneck with 2 convolutions
找来CSP的图

大致是把一个output按channel拆成2部分,其中一部分不动,
另一部分过conv,再拼回去,
因为是with 2 convolutions, 会有2个conv.
下面根据代码来走一遍流程:
在ultralytics/nn/modules/block.py
class C2f(nn.Module):
"""CSP Bottleneck with 2 convolutions."""
def __init__(self, c1, c2, n=1, shortcut=False, g=1, e=0.5): # ch_in, ch_out, number, shortcut, groups, expansion
super().__init__()
self.c = int(c2 * e) # hidden channels
self.cv1

文章详细介绍了CSPBottleneck结构中的C2f模块,它将输入通道分为两部分,一部分通过两个卷积层,然后与原始部分合并。代码展示了C2f类的实现,包括cv1和cv2卷积层以及Bottleneck子模块的使用,整个过程涉及通道分割、卷积和激活函数SiLU的应用。
最低0.47元/天 解锁文章
636

被折叠的 条评论
为什么被折叠?



