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

Python Day49

Task:
1.通道注意力模块复习
2.空间注意力模块
3.CBAM的定义

1. 通道注意力模块(Channel Attention Module)
  • 目的:动态调整各通道的权重,突出重要特征通道,抑制不相关信息。
  • 结构
    1. 双路池化:对输入特征图分别进行全局平均池化(GAP)和全局最大池化(GMP),得到两个1×1×C的向量。
    2. 共享MLP:将两个向量输入共享的全连接网络(MLP),结构为 C → C/r → C(r为缩减比例,如16),使用ReLU激活中间层。
    3. 融合权重:将MLP的输出相加后通过Sigmoid函数,生成通道权重矩阵 ( M_c )。
    4. 特征调整:将权重 ( M_c ) 与输入特征图逐通道相乘,增强关键通道。
2. 空间注意力模块(Spatial Attention Module)
  • 目的:关注特征图的重要空间区域,忽略无关区域。
  • 结构
    1. 跨通道池化:沿通道维度分别进行平均池化和最大池化,得到两个H×W×1的特征图。
    2. 特征拼接:将两个结果拼接为H×W×2的特征图。
    3. 卷积处理:应用7×7卷积(输出通道为1)融合空间信息,生成空间权重矩阵 ( M_s )。
    4. Sigmoid激活:对卷积结果使用Sigmoid函数,得到空间权重。
    5. 特征调整:将权重 ( M_s ) 与输入特征图逐位置相乘,强化重要区域。
3. CBAM(Convolutional Block Attention Module)
  • 定义:串联通道注意力和空间注意力的轻量级模块,顺序为 通道→空间
  • 流程
    • 输入特征图 ( F ):形状H×W×C。
    • 通道调整:( F’ = M_c(F) \otimes F )(( \otimes ) 为逐通道乘)。
    • 空间调整:( F’’ = M_s(F’) \otimes F’ )。
  • 优点
    • 即插即用:可嵌入CNN的任意位置(如ResNet块后)。
    • 轻量化:参数少,计算开销低,性能提升显著。
    • 双维度聚焦:通道与空间注意力互补,增强特征判别力。
示例:CBAM嵌入ResNet
  • 步骤:在ResNet的残差块中,卷积层后接CBAM模块。
    class CBAMResBlock(nn.Module):def __init__(self, in_channels, reduction_ratio=16):super().__init__()self.conv_layers = ...  # 原有卷积层self.cbam = CBAM(in_channels, reduction_ratio)def forward(self, x):residual = xx = self.conv_layers(x)x = self.cbam(x)x += residual  # 残差连接return x
    
关键点总结
  • 通道注意力:综合GAP与GMP,MLP共享参数,生成通道权重。
  • 空间注意力:跨通道池化拼接,大卷积核捕捉空间上下文。
  • CBAM顺序:先通道后空间,实验验证顺序有效性。
  • 应用效果:提升分类、检测等任务的精度,如ImageNet上ResNet-50的Top-1准确率提升约1-2%。

CBAM通过简洁的双注意力机制,实现了对特征图通道与空间维度的自适应优化,成为计算机视觉模型的常用增强模块。

http://www.xdnf.cn/news/13864.html

相关文章:

  • 一阶/二阶Nomoto模型(野本模型)为何“看不到”船速对回转角速度/角加速度的影响?
  • 智慧管廊数字化运维管理平台
  • 规则引擎rule-engine v1.0实现解释(一)-规则,执行,容器
  • Vue3中组件Ref打印Proxy(Object)与defineExpose的深度解析
  • navicat 有免费版了,navicat 官方免费版下载
  • vue2项目开发中遇到的小问题
  • Goland使用手册(1)
  • 【亲测有效】MybatisPlus中MetaObjectHandler自动填充字段失效
  • Tess4J:基于 Java 的 OCR 解决方案
  • php反序列化漏洞学习
  • 电脑PC端使用的备忘录记事软件推荐哪个
  • 【3】使用TRAE AI在已有框架中新增页面并实现切换的痛苦经历
  • boa 找不到动态库的解决办法:
  • 【零基础勇闯嵌入式岗】从单片机低功耗中获得的启发
  • 正则表达式入门
  • 【AIGC】Qwen3-Embedding:Embedding与Rerank模型新标杆
  • 【狂飙AGI】第2课:大模型方向市场分析
  • # Flask:Python的轻量级Web框架入门之旅(超级实用!)
  • 测试过程中有哪些风险?
  • KU115LPE-V10型FPGA加速卡
  • Linux操作系统之文件系统下
  • 友思特方案 | 友思特车载双目相机技术赋能农业:Monarch 智能拖拉机解决方案
  • linux基础day01
  • [25-cv-06422]David律所代理Dreams USA玩具手办商标维权
  • Java日期格式化
  • Swift 解法详解:如何在二叉树中寻找最长连续序列
  • NAS文件共享、PACS影像存储,速率提升400%?
  • PostgreSQL认证怎么选?PGCP中级认证、PGCM高级认证
  • 基于 Redis 的幂等性设计:SpringBoot @Async 在高并发 MySQL 日志存储中的应用
  • Vue3+TypeScript实现迭代器模式