YOLOv5网络详解之主干结构

本文详细介绍了YOLOv5网络的主干结构,包括CBS(卷积+BN+Silu)、C3(包含Bottleneck和特征拼接)以及SPPF(SPP结构的改进版)。每个结构都配合代码和结构图进行了解析,阐述其在特征提取中的作用和优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、CBS结构

代码

结构图

CBS结构详解

二、C3结构

代码

结构图

C3详解

三、SPPF结构

代码

结构图

sppf详解

YOLOv5结构



yolov5网络的主干是cspdarknet53,主干结构的作用就是用来提取特征的

YOLOv5的主干结构有CBS、C3和SPPF三种结构

一、CBS结构

代码

def autopad(k, p=None):  # kernel, padding
    # Pad to 'same'
    if p is None:
        p = k // 2 if isinstance(k, int) else [x // 2 for x in k]  # auto-pad
    return p


class Conv(nn.Module):
    # Standard convolution
    def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):  # ch_in, ch_out, kernel, stride, padding, groups
        super().__init__()
       
### YOLOv7 中的 CBS 结构详解YOLOv7 的设计中,CBS 是一种复合的基础模块,它由卷积层 (Convolutional Layer)、批归一化层 (Batch Normalization, BN) 和激活函数 SiLU 组成[^2]。 #### 卷积层 Convolutional Layer 卷积操作用于提取图像特征。通过不同大小和数量的滤波器,在输入数据上滑动并计算局部区域内的加权和,从而捕捉空间上的模式信息。这有助于减少参数量的同时保持较高的表达能力。 #### 批归一化 Batch Normalization BN 层位于每一轮卷积之后,其作用是对各批次的数据做标准化处理,使得每一层神经元的输入具有相对稳定的分布特性。这样可以加速收敛过程,并减轻梯度消失/爆炸的问题。具体来说,对于给定的小批量样本 \( \{x_1,...,x_m\} \),经过线性变换后的均值为零而方差为一时,模型更容易学习到有效的权重矩阵 W 和偏置 b。 #### 激活函数 SiLU SiLU(Sigmoid Linear Unit),也称为 Swish 函数,定义如下: \[ f(x)=x⋅σ(x), σ(x)=\frac {1}{1+e^{-x}} \] 这种非线性的映射方式能够使网络具备更好的泛化能力和更快的学习效率。相较于 ReLU 类型的传统激活单元,Swish 不仅保留了正向传播时较大的导数值范围,而且允许负数部分也有一定比例的信息传递过去,因此更适合于深层架构下的优化求解任务。 ```python import torch.nn as nn class CBS(nn.Module): def __init__(self, in_channels, out_channels, kernel_size=3, stride=1, padding=None, groups=1): super(CBS, self).__init__() if not padding and isinstance(kernel_size, int): padding = kernel_size // 2 self.conv = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, stride=stride, padding=padding, groups=groups, bias=False) self.bn = nn.BatchNorm2d(out_channels) self.act = nn.SiLU(inplace=True) def forward(self, x): return self.act(self.bn(self.conv(x))) ``` 上述代码展示了如何构建一个简单的 CBS 模块实例。该类继承自 PyTorch 的 `nn.Module` 并实现了三个主要组成部分——卷积层 (`conv`)、批规范化(`bn`) 和 SiLU 激活函数(`act`) 。当调用此对象时会依次执行这三个操作来完成前馈运算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

这糖有点苦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值