当前位置: 首页> 教育> 大学 > 二维码在线制作_网站建站推荐_seo软件视频教程_哪个平台可以买卖链接

二维码在线制作_网站建站推荐_seo软件视频教程_哪个平台可以买卖链接

时间:2025/8/21 12:01:25来源:https://blog.csdn.net/pinglejun/article/details/147066580 浏览次数:0次
二维码在线制作_网站建站推荐_seo软件视频教程_哪个平台可以买卖链接

高效多尺度注意力(EMA)模块

作用:

  1. ​多尺度特征融合​

    • 通过水平和垂直池化分离空间维度信息,结合1x1和3x3卷积捕捉局部与全局特征,实现对多尺度上下文的高效融合。
  2. ​动态权重分配​

    • 使用可学习的权重矩阵(通过softmaxmatmul生成),动态调整不同区域特征的重要性,增强模型对关键区域的关注。
  3. ​计算效率优化​

    • ​分组卷积(Grouped Conv)​​:将通道分组后并行处理,减少参数量和计算量(复杂度从O(C^2)降至O(C/G * C/G),其中G为分组数)。
    • ​稀疏交互​​:仅对关键区域分配高权重,避免冗余计算。
  4. ​抑制梯度消失/爆炸​

    • ​GroupNorm​​:稳定训练过程,缓解内部协变量偏移。
    • ​Sigmoid权重约束​​:确保权重在合理范围,避免数值不稳定。
  5. ​任务适应性​

    • 适用于目标检测、语义分割等需要精细空间建模的任务,尤其在处理小目标或复杂纹理时表现突出。

图1 EMA模块结构框图

源码如下:

import torch
from torch import nnclass EMA(nn.Module):def __init__(self, channels, c2=None, factor=32):super(EMA, self).__init__()self.groups = factorassert channels // self.groups > 0self.softmax = nn.Softmax(-1)self.agp = nn.AdaptiveAvgPool2d((1, 1))self.pool_h = nn.AdaptiveAvgPool2d((None, 1))self.pool_w = nn.AdaptiveAvgPool2d((1, None))self.gn = nn.GroupNorm(channels // self.groups, channels // self.groups)self.conv1x1 = nn.Conv2d(channels // self.groups, channels // self.groups, kernel_size=1, stride=1, padding=0)self.conv3x3 = nn.Conv2d(channels // self.groups, channels // self.groups, kernel_size=3, stride=1, padding=1)def forward(self, x):b, c, h, w = x.size()group_x = x.reshape(b * self.groups, -1, h, w)  # b*g,c//g,h,wx_h = self.pool_h(group_x)x_w = self.pool_w(group_x).permute(0, 1, 3, 2)hw = self.conv1x1(torch.cat([x_h, x_w], dim=2))x_h, x_w = torch.split(hw, [h, w], dim=2)x1 = self.gn(group_x * x_h.sigmoid() * x_w.permute(0, 1, 3, 2).sigmoid())x2 = self.conv3x3(group_x)x11 = self.softmax(self.agp(x1).reshape(b * self.groups, -1, 1).permute(0, 2, 1))x12 = x2.reshape(b * self.groups, c // self.groups, -1)  # b*g, c//g, hwx21 = self.softmax(self.agp(x2).reshape(b * self.groups, -1, 1).permute(0, 2, 1))x22 = x1.reshape(b * self.groups, c // self.groups, -1)  # b*g, c//g, hwweights = (torch.matmul(x11, x12) + torch.matmul(x21, x22)).reshape(b * self.groups, 1, h, w)return (group_x * weights.sigmoid()).reshape(b, c, h, w)

关键字:二维码在线制作_网站建站推荐_seo软件视频教程_哪个平台可以买卖链接

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: