news 2026/4/22 17:34:10

SpatialAttention空间注意力模块

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 的尺寸,和空间注意力的池化需求完全相悖。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 11:46:12

实验室预约管理系统(开源 FastAPI + Vue )

源码下载: 「28-实验室预约系统」 链接:https://pan.quark.cn/s/46e6d24d4ff6 实验室预约管理系统 一个基于 FastAPI SQLite HTML/JS 的实验室预约管理系统,支持学生预约、教师审核、管理员管理的完整流程。 项目简介 本系统旨在解决学校实…

作者头像 李华
网站建设 2026/4/13 1:27:06

企业级人事管理系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】

摘要 随着企业规模的扩大和信息化建设的深入,传统的人事管理模式已无法满足现代企业对高效、精准、智能化管理的需求。企业人事管理涉及员工信息、考勤、薪资、绩效等多维度数据,传统手工操作或单机版管理系统存在数据孤岛、效率低下、易出错等问题。因…

作者头像 李华
网站建设 2026/4/12 19:36:14

【毕业设计】SpringBoot+Vue+MySQL 小区团购管理平台源码+数据库+论文+部署文档

摘要 随着互联网技术的快速发展和社区经济的兴起,小区团购模式逐渐成为居民日常生活中不可或缺的一部分。传统的团购方式存在信息不透明、管理效率低下、沟通成本高等问题,难以满足现代社区居民对便捷、高效购物体验的需求。基于此,开发一款小…

作者头像 李华
网站建设 2026/4/23 12:26:13

主题生成AI PPT工具横评:ChatPPT何以成为公认第一?

主题生成AI PPT工具横评:ChatPPT何以成为公认第一? 输入一句话,3分钟内一份专业精美的PPT即刻生成。AI正在重新定义演示文稿的制作方式。 在快节奏的职场与学术环境中,PPT制作已成为一项基本且耗时的工作。传统PPT制作流程涉及内容…

作者头像 李华
网站建设 2026/4/23 9:39:03

<span class=“js_title_inner“>真正的AI手机永远不会有了吗?</span>

文 / 明道云创始人 任向晖 今天收到了中兴与豆包合作的 AI 手机(努比亚 M 系列的一款,以下简称“豆包手机”)。尽管早就知道微信等主流 App 已经全面封杀跨 App 操作,我还是想亲眼看看微信的冷酷与豆包的无奈。 当年 ChatGPT 4.0 …

作者头像 李华