首页 > 其他分享 >【深度学习】SAB:空间注意力

【深度学习】SAB:空间注意力

时间:2025-01-11 19:28:24浏览次数:3  
标签:特征 SAB self 深度 空间 out 注意力 size

@[toc]SAB:空间注意力

SAB:空间注意力

SA(Spatial Attention)空间注意力模块是一种用于计算机视觉任务的注意力机制,它的核心思想是通过学习特征图在空间维度上的重要性,自适应地增强或抑制不同空间位置的特征响应。与通道注意力(如 SENet 或 CBAM 中的通道注意力模块)不同,空间注意力关注的是特征图的空间维度(高度和宽度),而不是通道维度

SA 的核心思想

1.空间注意力机制:

通过对特征图在通道维度上进行聚合(如最大池化或平均池化),生成空间注意力图。

使用卷积层学习空间位置之间的关系。

通过 Sigmoid 函数生成空间注意力权重,对原始特征图进行加权。

残差连接:

为了保留原始特征信息,通常会在空间注意力模块的输出上添加残差连接。

SA 的结构

通道聚合:

对输入特征图在通道维度上进行聚合(如最大池化或平均池化),生成一个空间描述图。

卷积层:

使用卷积层学习空间位置之间的关系。

通常使用一个 7x7 或 3x3 的卷积核来捕获局部空间信息。

Sigmoid 激活函数:

对卷积层的输出进行归一化,生成空间注意力权重。

特征加权:

将生成的空间注意力权重与输入特征图相乘,得到加权后的特征。

残差连接:

将加权后的特征与输入特征相加,保留原始信息。

代码实现

import torch
import torch.nn as nn

class SpatialAttention(nn.Module):
    def __init__(self, kernel_size=7):
        """
        初始化 SA 模块
        :param kernel_size: 卷积核大小,默认为 7
        """
        super(SpatialAttention, self).__init__()
        self.kernel_size = kernel_size

        # 通道聚合(最大池化和平均池化)
        self.max_pool = nn.AdaptiveMaxPool2d(1)
        self.avg_pool = nn.AdaptiveAvgPool2d(1)

        # 卷积层
        self.conv = nn.Conv2d(2, 1, kernel_size=kernel_size, padding=kernel_size // 2, bias=False)
        self.sigmoid = nn.Sigmoid()

    def forward(self, x):
        """
        前向传播
        :param x: 输入特征图,形状为 [batch_size, channel, height, width]
        :return: 加权后的特征图
        """
        # 通道聚合
        max_out = self.max_pool(x)  # [batch_size, channel, 1, 1]
        avg_out = self.avg_pool(x)  # [batch_size, channel, 1, 1]

        # 拼接
        out = torch.cat([max_out, avg_out], dim=1)  # [batch_size, 2, height, width]

        # 卷积层
        out = self.conv(out)  # [batch_size, 1, height, width]

        # 生成空间注意力权重
        spatial_weights = self.sigmoid(out)  # [batch_size, 1, height, width]

        # 特征加权
        return x * spatial_weights

总结

SA 空间注意力模块通过学习特征图在空间维度上的重要性,能够自适应地增强重要区域的特征并抑制不重要区域的特征。

标签:特征,SAB,self,深度,空间,out,注意力,size
From: https://blog.csdn.net/weixin_59422604/article/details/145081219

相关文章

  • Apache AGE:基于PostgreSQL的图数据库深度解析
    ApacheAGE:基于PostgreSQL的图数据库深度解析一、引言在当今复杂多变的数据环境中,关系型数据库和图数据库各自扮演着重要的角色。关系型数据库以其结构清晰、查询高效的特点,在事务处理和数据一致性方面表现出色;而图数据库则以其灵活的数据模型和强大的图查询能力,在社交网......
  • 深度强化学习
    深度强化学习表格来存储每一个状态state和Q值显然是不现实的,除了存储开销,搜索开销也非常巨大。深度强化学习(DeepQNetwork)是强化学习与深度学习的结合,利用神经网络作为函数逼近器来解决高维或复杂状态空间下的强化学习问题。其关键特征就是使用深度神经网络(DNN)代替表格化的值函......
  • 蜘蛛织网--广度优先搜索和深度优先搜索在学习策略上的一些考量(1)
    如果把学习的过程想象为一个建立一张蛛网的过程,那么广度优先就是优先蛛网的大小,深度优先就是优先蛛丝的强度。那么现在的问题是什么?时间是有限的,进步也是有限的,想让网抓到想要的虫子(解决问题更加合理),我们就必须仔细考量网的大小和强度--即蛛网的大小和强度由所需要捕捉到的虫子(需......
  • YOLOv11改进,YOLOv11添加HAttention注意机制用于图像修复的混合注意力转换器,CVPR2023,超
    摘要基于Transformer的方法在低层视觉任务中表现出色,例如图像超分辨率。然而,作者通过归因分析发现,这些网络只能利用有限的空间范围的输入信息。这意味着现有网络尚未充分发挥Transformer的潜力。为了激活更多的输入像素以获得更好的重建效果,作者提出了一种新型的混合注......
  • 基于YOLOv8深度学习的物业管理清扫作业监测与语音提示系统
    随着智能化管理和人工智能技术的快速发展,传统的物业管理逐渐向自动化和智能化方向发展。本论文提出了一种基于YOLOv8深度学习模型的物业管理清扫作业监测与语音报警系统,旨在实现对物业清扫作业的自动化监控,提升物业管理效率,确保清扫任务的及时性与质量。系统主要包括图像采集、......
  • 计算机毕设项目源码 大数据深度学习 教育机构信息管理系统
    标题:教育机构信息管理系统教育机构信息管理系统的基本功能主要包括以下几个方面:1.用户管理用户注册与登录:教职工、学生及家长可以注册账户并登录。角色管理:根据不同的用户角色(如管理员、教师、学生、家长)设置相应的权限。2.学生管理学生信息管理:记录学生的基本信......
  • 计算机毕业设计源码 大数据深度学习 健身俱乐部管理系统
    标题:健身俱乐部管理系统健身俱乐部管理系统的基本功能主要包括以下几个方面:1.用户管理用户注册与登录:会员可以注册新账号并登录,管理人员可以登录后台进行管理。会员信息管理:记录和管理会员的基本信息,包括姓名、联系方式、性别、年龄、入会日期等。2.会员管理会员档......
  • 论文速读:SiamRPN++,利用深度网络实现Siamese视觉跟踪的进化
     原文标题:SiamRPN++:EvolutionofSiameseVisualTrackingwithVeryDeepNetworks中文标题:SiamRPN++:利用深度网络实现Siamese视觉跟踪的进化今天要介绍的是来自商汤团队发表在CVPR上一篇目标检测跟踪的文章。文章非常经典,直到现在也有很多地方正在使用该架构。详细精......
  • 深度解析微信小程序数据预拉取API调用的问题与使用方法
    了解到通过配置数据预拉取可以在更早的生命周期调用网络请求以提升首屏数据的渲染速度,但通过官方文档和网上各种文章解析,都没有把API给解释明白且社区存在大量反馈问题,通过深入的了解和调试,故写下本解析文章。官方文档说明首先配置预拉取地址信息和在开发者工具开启数据预......
  • YOLO11单目测距与深度估计和目标检测项目
    文章目录YOLO11单目测距与深度估计和目标检测:结合目标检测与深度学习的高效解决方案1.引言2.YOLO11简介2.1核心功能核心代码2.2YOLO11的改进3.技术原理与方法3.1YOLO目标检测模块3.2深度估计模块3.3单目测距模块3.4多任务损失函数4.实验与结果分析4.1数据集......