当前位置: 首页 > news >正文

SpatialAttention空间注意力模块

一、空间注意力(SAM)

通过对特征图空间内部的关系来产生空间注意力特征图。不同于通道注意力,空间注意力(Spatial Attention Mechanism, SAM)聚焦于特征图上的有效信息在"哪里"(where)。

1、空间注意力结构

  1. 首先,对一个尺寸为 H×W×C的输入特征图 F 进行通道维度的全局最大池化和全局平均池化,得到两个 H×W×1 的特征图(在通道维度进行池化,压缩通道大小,便于后面学习空间的特征);

  2. 然后,将全局最大池化和全局平均池化的结果,按照通道拼接(concat),得到特征图尺寸为HxWx2,

  3. 最后,对拼接的结果进行7x7的卷积操作,得到特征图尺寸为 HxWx1,接着通过Sigmoid激活函数 ,得到空间注意力权重矩阵

​2、空间注意力计算公式

空间注意力权重矩阵可表示为:

同上,在通道维度使用两种池化方法产生2D特征图:

综上,空间注意力的计算公式如下:

3、实现代码

import torch import torch.nn as nn class SpatialAttentionModule(nn.Module): """ 空间注意力模块:增强特征图中空间位置信息,突出重要区域 1、首先,对一个尺寸为 H×W×C的输入特征图F进行通道维度的全局最大池化和全局平均池化,得到两个 H×W×1 的特征图; 2、然后,将全局最大池化和全局平均池化的结果,按照通道拼接(concat),得到特征图尺寸为HxWx2; 3、最后,对拼接的结果进行7x7的卷积操作,得到特征图尺寸为 HxWx1,接着通过Sigmoid激活函数 ,得到空间注意力权重矩阵 """ def __init__(self): super().__init__() # 7x7卷积,输入2通道(avg+max),输出1通道注意力权重 self.conv = nn.Conv2d(in_channels=2,out_channels=1,kernel_size=7,padding=3,bias=False) # (偏置会被Sigmoid抵消,无需设置) self.sigmoid = nn.Sigmoid() def forward(self,x): # 1. 通道维度做平均池化,keepdim=True保证形状为[B,1,H,W](不丢失维度) avgpool_out = torch.mean(x,dim=1,keepdim=True) # keepdim=True 保持输出与输入张量相同的维度。 # 2. 通道维度做最大池化,返回值[0]是池化结果,[1]是最大值索引(无用,舍弃) maxpool_out,_ = torch.max(x,dim=1,keepdim=True) # 3. 在通道维度拼接平均/最大池化结果,形状变为[B,2,H,W],作为卷积输入 out = torch.cat([avgpool_out,maxpool_out],dim=1) # 4. 7x7卷积融合空间信息,输出[B,1,H,W]的空间注意力图 out = self.conv(out) # 5. Sigmoid归一化,得到0~1的注意力权重(越接近1,该空间位置越重要) out = self.sigmoid(out) # 6. 注意力加权:原特征图和权重逐元素相乘(广播机制,1通道权重作用于C个通道) out = x * out return out

二、注意事项

1、为什么这么设计?

空间注意力模块的设计思路是先压缩通道信息,再融合空间信息,原因如下:

  1. 通道池化(mean+max):对每个空间位置(H,W),将 C 个通道的特征压缩为平均值最大值两个标量,得到 2 个[H,W]的二维特征图,既保留了空间信息,又大幅降低了计算量;

  2. 7x7 大卷积核:相比 3x3 卷积,7x7 能捕捉更大的空间感受野,更适合挖掘特征图中长距离的空间依赖关系(这也是空间注意力用 7x7,而通道注意力用 1x1 的原因);

  3. Sigmoid 归一化:将卷积输出映射到 0~1,保证注意力权重是非负的缩放因子,不会改变原特征的分布趋势,仅对重要区域做增强、不重要区域做抑制。

2、torch.mean与nn.AdaptiveAvgPool2d的区别?

空间注意力里的池化是「压通道」,nn 的自适应池化层是「压空间」,二者池化的对象完全不同。

回顾空间注意力的核心需求:对特征图中每个空间位置(h,w),把C个通道的特征压缩成 1 个标量(平均 / 最大),最终得到[B,1,H,W]的特征图,保留完整的 H/W 空间信息(这是空间注意力的核心,因为要对每个空间位置赋权重)。

这个池化操作的维度是dim=1(通道维度),操作对象是通道轴,和空间轴(H/W,dim=2/dim=3)无关。

nn.AdaptiveAvgPool2dnn.AdaptiveMaxPool2d是 PyTorch 封装的空间池化层,它们的设计目标是对空间维度(H/W)做自适应池化,压缩 H/W 的尺寸,和空间注意力的池化需求完全相悖。

http://www.jsqmd.com/news/335963/

相关文章:

  • 2026年比较好的龙凤无人机/无人机婚礼表演高评价厂家推荐 - 行业平台推荐
  • 2026年靠谱的龙凤呈祥无人机/无人机婚礼表演人气实力厂商推荐 - 行业平台推荐
  • 企业级spring boot疫情信息管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • SpringBoot+Vue 小区团购管理平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 毕业论文管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • 操作系统内核项目面经分享
  • <span class=“js_title_inner“>【港科大-郑自强组-WACV26】ORCA: 海洋物种目标识别与理解</span>
  • 第五日笔记
  • 企业级老年一站式服务平台管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • <span class=“js_title_inner“>【ICLR26-王欢-西湖大学】MergeMix:一种用于视觉和多模态理解的统一增强范式</span>
  • 2026年热门的陕西有机水溶肥/陕西水溶肥行业内口碑厂家推荐 - 行业平台推荐
  • 2026年评价高的陕西含腐植酸水溶肥/陕西水溶肥高评分品牌推荐(畅销) - 行业平台推荐
  • 光刻胶用屏蔽剂
  • 2026年比较好的陕西天然生物刺激素/天然生物刺激素品牌厂家推荐 - 行业平台推荐
  • 2026年知名的天然生物刺激素/陕西生物刺激素高口碑厂家推荐(评价高) - 行业平台推荐
  • 实验室预约管理系统(开源 FastAPI + Vue )
  • 【ISAC+抗干扰+信号识别】5G ISAC+深度学习!破解智能交通“自干扰”难题,V2X通信准确率近100%【附代码】
  • 告别Docker拉取超时!三分钟搞定镜像加速与配置文件优化
  • 一键批量改名!184KB 迷你神器,免费无广!
  • 3 款宝藏小软件,工作效率直接起飞!
  • 吾爱精品!批量生成二维码,免费无广,轻松拿捏!
  • <span class=“js_title_inner“>中国信息协会:低空经济发展报告(2025-2026)</span>
  • 永久免费不限次,业界良心!太香了!
  • 吾爱 6 款迷你神器,每款都精准解决电脑痛点,免费实用拉满!
  • DeepSeek推出OCR 2模型!瞄准高难度文档识别
  • 主题生成AI PPT工具横评:ChatPPT何以成为公认第一?
  • 2026年SCRM软件品牌排行榜:企业微信服务商微盛·企微管家领跑
  • 深入解析 Android 开发工程师核心技能:从职位要求到实战面试
  • 【毕业设计】SpringBoot+Vue+MySQL 小区团购管理平台源码+数据库+论文+部署文档
  • SpringBoot+Vue spring boot疫情信息管理系统管理平台源码【适合毕设/课设/学习】Java+MySQL