千家信息网

local注意力怎么生成

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍了local注意力怎么生成的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇local注意力怎么生成文章都会有所收获,下面我们一起来看看吧。soft atte
千家信息网最后更新 2026年10月31日local注意力怎么生成

这篇文章主要介绍了local注意力怎么生成的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇local注意力怎么生成文章都会有所收获,下面我们一起来看看吧。

soft attention(包括空间注意力、通道注意力)软注意学习的目的是选择细粒度的重要像素点,它们是pixel级。

hard attention( local 注意力) 硬注意学习则致力于搜索粗糙的潜在判别区域,它们是region级。
他们在功能上有很大的互补性。他们的结合使用可以提高模型的性能

下面讲解空间注意力、通道注意力、local 注意力的生成

通道注意力:
就是对于每个channel赋予不同的权重,比如1,2处马的形状比较明显,所以理所当然,对1,2通道的权重比较大,3,4处权重小。

空间注意力:
空间注意力是对64个通道进行mean的一个操作,得到一个(w x h)的权重,mean的操作就学到了所有通道的整体分布,而抛弃了奇异的通道。比如说1,2的图可以很好的描绘出马的形状,而3,4就不行(但本质上它也是要显示出马的形状),但是通过mean后,得到的w x h权值共享后,给了3,4一定的权值描述,相当于给3,4一定的注意力,这样它们也可以描绘出马的形状。

代码

class SpatialAttn(nn.Module):  # 输入x.shape=(32,3,256,128),对第三维度通道求mean=(32,1,256,128),一个卷积照片缩小一半,upsample恢复,再经过1x1 convdef __init__(self):super(SpatialAttn, self).__init__()self.conv1 = ConvBlock(1, 1, 3, s=2, p=1)self.conv2 = ConvBlock(1, 1, 1)def forward(self, x):# global cross-channel averagingx = x.mean(1, keepdim=True)  # x.shape=(32,3,256,128)  x.mean.shape按照通道求均值=(32,1,256,128)# 3-by-3 convx = self.conv1(x)  # x.shape=(32,1,128,64)# bilinear resizingx = F.upsample(x, (x.size(2) * 2, x.size(3) * 2), mode='bilinear', align_corners=True)  # x.shape=(32,1,256,128)# scaling convx = self.conv2(x)  # x.shape=(32,1,256,128)return xclass ChannelAttn(nn.Module):def __init__(self, in_channels, reduction_rate=16):super(ChannelAttn, self).__init__()assert in_channels % reduction_rate == 0self.conv1 = ConvBlock(in_channels, in_channels // reduction_rate, 1)self.conv2 = ConvBlock(in_channels // reduction_rate, in_channels, 1)def forward(self, x):# squeeze operation (global average pooling)# x.shape=(32, 16, 256, 128)x = F.avg_pool2d(x, x.size()[2:])#torch.size([32,16,1,1])# excitation operation (2 conv layers)x = self.conv1(x)#torch.size([32,1,1,1])x = self.conv2(x)#torch.size([32,16,1,1])return xclass SoftAttn(nn.Module):#软注意力(32,16,256,128)=空间注意力的输出(32,1,256,128)乘上通道注意力(32,16,1,1)def __init__(self, in_channels):super(SoftAttn, self).__init__()self.spatial_attn = SpatialAttn()self.channel_attn = ChannelAttn(in_channels)self.conv = ConvBlock(in_channels, in_channels, 1)def forward(self, x):#x.shape(32,16,256,128)y_spatial = self.spatial_attn(x)#32,1,256,128y_channel = self.channel_attn(x)#32,16,1,1y = y_spatial * y_channel#32,16,256,128y = F.sigmoid(self.conv(y))return y#torch.Size([32, 16, 256, 128])

关于"local注意力怎么生成"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"local注意力怎么生成"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。

注意力 通道 生成 空间 形状 权重 知识 学习 内容 篇文章 不同 不行 很大 明显 重要 奇异 粗糙 理所当然 互补性 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技巨头监管 互联网最新的科技 深圳互联网络科技有限公司 互联网科技排名 致聘互联网科技 碳银互联网科技有限公司 狮子座互联网科技培训 崇明区互联网教育科技诚信经营 互联网科技公司有风险吗 互联网5g黑科技有哪些 开一家科技互联网公司需要多少钱 深圳艾果互联网通讯科技 华中科技大学互联网的牛人 山东有哪些互联网科技公司 互联网科技收购价值 同城互联网络科技 中国互联网公司的科技投入 互联网科技职业技能培训学校 科技互联网经济论坛 互联网领先科技成果宣传视频 科技互联网产品 科技平台互联网 厦门中拓互联网络科技有限公司 北京互联网科技有限公司 互联网金融科技平台 友谊互联网络科技 工业互联网展湾科技股份有限公司 东营紫格互联网科技 上海万顺科技互联网有限公司招聘 如何强化互联网金融科技
0