news 2026/2/7 7:11:25

26.1.23 P8周yolo打卡

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
26.1.23 P8周yolo打卡

YOLO模型核心组件详解

1.autopad函数

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

功能:自动计算padding值,确保卷积后尺寸不变(SAME卷积)
原理:当p为None时,自动计算为kernel size的一半

2.Conv类(标准卷积模块)

class Conv(nn.Module): def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True): super().__init__() self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p), groups=g, bias=False) self.bn = nn.BatchNorm2d(c2) self.act = nn.SiLU() if act is True else (act if isinstance(act, nn.Module) else nn.Identity()) def forward(self, x): return self.act(self.bn(self.conv(x)))

参数说明:
c1: 输入通道数
c2: 输出通道数
k: 卷积核大小
s: 步长
g: 分组卷积数
act: 是否使用激活函数
结构:Conv → BatchNorm → SiLU激活函数
特点:使用SiLU激活函数(Sigmoid-weighted Linear Unit),比ReLU更平滑

3.Bottleneck类(瓶颈块)

class Bottleneck(nn.Module): def __init__(self, c1, c2, shortcut=True, g=1, e=0.5): super().__init__() c_ = int(c2 * e) # hidden channels self.cv1 = Conv(c1, c_, 1, 1) # 1×1卷积降维 self.cv2 = Conv(c_, c2, 3, 1, g=g) # 3×3卷积 self.add = shortcut and c1 == c2 # 残差连接开关 def forward(self, x): return x + self.cv2(self.cv1(x)) if self.add else self.cv2(self.cv1(x))

功能:实现残差连接的瓶颈结构
结构:
1×1卷积:降低通道数(c2×e)
3×3卷积:特征提取
残差连接:当输入输出通道相同时添加跳跃连接
优势:减少参数量,缓解梯度消失

4.C3类(CSP Bottleneck with 3 convolutions)

class C3(nn.Module): def __init__(self, c1, c2, n=1, shortcut=True, g=1, e=0.5): super().__init__() c_ = int(c2 * e) # hidden channels self.cv1 = Conv(c1, c_, 1, 1) # 第一个1×1卷积 self.cv2 = Conv(c1, c_, 1, 1) # 第二个1×1卷积 self.cv3 = Conv(2 * c_, c2, 1) # 最终融合卷积 self.m = nn.Sequential(*(Bottleneck(c_, c_, shortcut, g, e=1.0) for _ in range(n))) def forward(self, x): return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), dim=1))

CSP(Cross Stage Partial)结构:
将输入分为两路:一路经过多个Bottleneck,一路直接传递
两路concatenate后用1×1卷积融合
优势:平衡计算效率和准确性,减少内存占用

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/4 6:35:46

Gemini Voyager:让你的Gemini体验更上一层楼

Gemini Voyager:让你的Gemini体验更上一层楼 一个让Gemini变得更好用的浏览器插件 如果你经常用Gemini,可能会遇到这些问题: 对话太长,找不到之前说过的内容聊天记录乱七八糟,没法分类整理好用的提示词每次都要重新输…

作者头像 李华
网站建设 2026/2/3 17:46:59

橡胶制品ERP功能详解大全

一、 ERP概述 对于橡胶制品行业而言,ERP系统是一套专门适配该领域复杂生产与管理特性的集成化软件。它旨在通过统一的信息平台,串联从原材料采购、配方工艺管理、生产制造到销售发货的全流程,并对关键环节如质量检验、设备维护和成本核算进行…

作者头像 李华
网站建设 2026/2/7 1:49:42

央企网页应用中,JAVA如何支持多附件的分块上传?

“救命啊!毕业设计要翻车了!” 作为福州某高校计算机系最会摸鱼的大三咸鱼,最近被毕业设计逼得差点把键盘啃了。导师让我做个文件管理系统,要求支持10G大文件上传、断点续传、文件夹层级保留、全浏览器兼容…最要命的是必须用原生…

作者头像 李华
网站建设 2026/2/5 13:01:40

通义千问3-14B显存峰值高?流式输出优化部署案例

通义千问3-14B显存峰值高?流式输出优化部署案例 1. 为什么你的Qwen3-14B显存爆了? 你有没有遇到这种情况:明明RTX 4090有24GB显存,加载一个FP8量化后才14GB的Qwen3-14B模型,结果一跑就OOM(Out of Memory&…

作者头像 李华
网站建设 2026/2/4 5:08:31

手把手教你部署GPT-OSS-20B,网页端玩转开源大模型

手把手教你部署GPT-OSS-20B,网页端玩转开源大模型 你是否也曾在深夜翻遍GitHub,只为找到一个能在本地运行、又足够聪明的开源大模型?现在,这个愿望终于可以实现了。今天我们要聊的是 GPT-OSS-20B —— 一个社区重构的高性能语言模…

作者头像 李华