网站性能wordpress 恢复初始化
2026/5/21 14:47:00 网站建设 项目流程
网站性能,wordpress 恢复初始化,免费问题咨询,网站建设优惠活动声明 #x1f368; 本文为#x1f517;365天深度学习训练营中的学习记录博客#x1f356; 原作者#xff1a;K同学啊 我的环境 Python版本#xff1a;3.10.19 PyTorch版本#xff1a;2.9.1cu130 Torchvision版本#xff1a;0.24.1cu130 CUDA版本#xff1a;13.0 GPU…声明本文为365天深度学习训练营中的学习记录博客原作者K同学啊我的环境Python版本3.10.19PyTorch版本2.9.1cu130Torchvision版本0.24.1cu130CUDA版本13.0GPU设备NVIDIA GeForce RTX 5060主要内容YOLOv5中的C3模块代码解析首先定义了一个新卷积Conv它是由一个卷积层、一个池化层以及一个SiLU层组成#卷积块卷积批归一化激活函数 class Conv(nn.Module): def __init__(self, c1, c2, k1, s1, pNone, g1, actTrue): super().__init__() self.conv nn.Conv2d(c1, c2, k, s, atuopad(k, p), groupsg, biasFalse) self.bn nn.BatchNorm2d(c2) #act true时使用SiLU激活函数act为false时不使用激活函数act也可以传入自定义的激活函数 self.act nn.SiLU() if act else (act if isinstance(act, nn.Module) else nn.Identity()) def forward(self, x): return self.act(self.bn(self.conv(x)))这其中用到了一个自动计算padding的函数该函数目的是让输出的尺寸和输入保持一致#通过改变padding实现输出尺寸不变 def atuopad(k, pNone): if p is None: p k // 2 if isinstance(k, int) else [x // 2 for x in k] return p接下来是Bottleneck层Bottleneck层是现代深度卷积网络的核心组件主要作用是在保持或提升性能的同时显著降低计算复杂度和参数量并且它使用残差链接保证了网络深度。如图所示一个bottleneck层是将输入以及输入经过两次conv层后的输出结合在一起作为输出。故代码如下class Bottleneck(nn.Module): def __init__(self, c1, c2, shortcutTrue, g1, e0.5): super().__init__() c_ int(c2 * e) self.cv1 Conv(c1, c_, 1, 1) self.cv2 Conv(c_, c2, 3, 1, gg) #是否使用残差连接启用残差链接且输入输出通道数相等时使用 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))最后组成了其中的C3模块在YOLOv5中有许多C3模块连接在一起组成了其中经典的C3*N结构C3模块由输入先经过一个Conv层然后加上通过N个bottleneck层的结果最后再经过一个Conv层组成class C3(nn.Module): def __init__(self, c1, c2, n1, shortcutTrue, g1, e0.5): super().__init__() c_ int(c2 * e) self.cv1 Conv(c1, c_, 1, 1) self.cv2 Conv(c1, c_, 1, 1) self.cv3 Conv(2 * c_, c2, 1) self.m nn.Sequential(*[Bottleneck(c_, c_, shortcut, g, e1.0) for _ in range(n)]) def forward(self, x): return self.cv3(torch.cat((self.m(self.cv1(x)), self.cv2(x)), dim1))最后网络结构如下class model_K(nn.Module): def __init__(self): super(model_K, self).__init__() self.Conv Conv(3, 32, 3, 2) self.C3_1 C3(32, 64, 3, 2) self.classifier nn.Sequential( nn.Linear(802816, 100), nn.ReLU(), nn.Linear(100, out_features4) ) def forward(self, x): x self.Conv(x) x self.C3_1(x) x torch.flatten(x, 1) x self.classifier(x) return x可自行选择增加其中C3层数量以及bottleneck层数量。但是注意修改线性层输入。输出结果

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询