local注意力怎么生成
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍了local注意力怎么生成的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇local注意力怎么生成文章都会有所收获,下面我们一起来看看吧。soft atte
千家信息网最后更新 2025年01月23日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安全错误
数据库的锁怎样保障安全
蚂蚁金服网络技术有限公司招聘
小米论坛数据库
网络安全论文 免费
内存插槽支持服务器内存条吗
数据库数据重叠
推动网络安全实现
笔记本电脑主板改装nas服务器
广州博众网络技术有限公司
荣誉勋章2010服务器关闭了吗
前端后端数据库谁好
服务器是哪拉车的牛
沈昌祥208网络安全宣传周
谷歌打开网页提示服务器错误
怀远县软件开发
国际服务器芯片市场
量子特攻pc版选不了服务器
sql数据库测试
百度怎样解除网络安全
数据库的事物处理技术包括
access数据库管理
县级以上政府网络安全保护
配置服务器的静态ip步骤是
浪潮软件开发工程师广州
常州机电计算机网络技术
结信网络技术服务
计算机网络技术导学案
东莞贞元网络技术有限公司
检查多个数据库连接
服务器管理打不开了
数据库系统工程师考试题