local注意力怎么生成
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要介绍了local注意力怎么生成的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇local注意力怎么生成文章都会有所收获,下面我们一起来看看吧。soft atte
千家信息网最后更新 2025年12月01日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安全错误
数据库的锁怎样保障安全
广州网络安全高峰论坛
网络安全宣传周宣传内容
数据库的优势和
熹妃传服务器列表
服务器端渲染
搞软件开发经常出差
吉大网络技术实习终稿
江苏苏州公安局网络安全支队长
无锡易飞软件开发
家校合作网络安全
hpdl160服务器打开
远程数据库安全
学生网络安全措施有哪些
上海联美互联网科技有限公司
在数据库技术中 ER模型
高级数据库技术自考真题
软件开发 设计依据
网络安全行业划分
获取时间最新的一条数据库
第一视频北京网络技术有限
纵横谈网络安全
软件开发好还是电气工程好
计算机网络技术波特率
动漫玩具店数据库
长春软件开发赛
安徽千诺互联网科技
图画换衣服网络安全的画
中秋快乐网络安全
网络安全问题日益重要英语
国家机关网络安全管理办法