文章目录

  • 前言
  • 一、CBAM: Convolutional Block Attention Module
  • 二、注意力相关的Pytorch代码
    • 代码来自于网上,不是本人写的 [注意力代码的GitHub链接](https://github.com/xmu-xiaoma666/External-Attention-pytorch)

前言

最近研究了下注意力机制


一、CBAM: Convolutional Block Attention Module


CBAM模块包含两个连续的子模块:通道注意力空间注意力

二、注意力相关的Pytorch代码

代码来自于网上,不是本人写的 注意力代码的GitHub链接

import numpy as np
import torch
from torch import nn
from torch.nn import initclass ChannelAttention(nn.Module):def __init__(self,channel,reduction=16):super().__init__()self.maxpool=nn.AdaptiveAvgPool2d(1)self.avgpool=nn.AdaptiveAvgPool2d(1)self.se=nn.Sequential(nn.Conv2d(channel,channel//reduction,1,bias=False),nn.ReLU(),nn.Conv2d(channel//reduction,channel,1,bias=False))self.sigmoid=nn.Sigmoid()def forward(self, x) :max_result=self.maxpool(x)avg_result=self.avgpool(x)max_out=self.se(max_result)avg_out=self.se(avg_result)output=self.sigmoid(max_out+avg_out)return outputclass SpatialAttention(nn.Module):def __init__(self,kernel_size=7):super().__init__()self.conv=nn.Conv2d(2,1,kernel_size=kernel_size,padding=kernel_size//2)self.sigmoid=nn.Sigmoid()def forward(self, x) :max_result,_=torch.max(x,dim=1,keepdim=True)avg_result=torch.mean(x,dim=1,keepdim=True)result=torch.cat([max_result,avg_result],1)output=self.conv(result)output=self.sigmoid(output)return outputclass CBAMBlock(nn.Module):def __init__(self, channel=512,reduction=16,kernel_size=49):super().__init__()self.ca=ChannelAttention(channel=channel,reduction=reduction)self.sa=SpatialAttention(kernel_size=kernel_size)def init_weights(self):for m in self.modules():if isinstance(m, nn.Conv2d):init.kaiming_normal_(m.weight, mode='fan_out')if m.bias is not None:init.constant_(m.bias, 0)elif isinstance(m, nn.BatchNorm2d):init.constant_(m.weight, 1)init.constant_(m.bias, 0)elif isinstance(m, nn.Linear):init.normal_(m.weight, std=0.001)if m.bias is not None:init.constant_(m.bias, 0)def forward(self, x):b, c, _, _ = x.size()residual=xout=x*self.ca(x)out=out*self.sa(out)return out+residualif __name__ == '__main__':input=torch.randn(50,512,7,7)kernel_size=input.shape[2]cbam = CBAMBlock(channel=512,reduction=16,kernel_size=kernel_size)output=cbam(input)print(output.shape)

注意力机制--CBAM的研究相关推荐

  1. 新年美食鉴赏——基于注意力机制CBAM的美食101分类

    新年美食鉴赏--基于注意力机制CBAM的美食101分类 一.数据预处理 1.数据集介绍 2.读取标签 3.统一命名 4.整理图片路径 5.划分训练集与验证集 6.定义美食数据集 二.注意力机制 1.简 ...

  2. CNN中的混合域注意力机制CBAM

    1. 注意力机制介绍 注意力机制本质上是一种资源分配机制,它可以根据关注目标的重要性程度改变资源分配方式,使资源更多的向attention的对象倾斜.在卷积神经网络中,注意力机制所要分配的资源就是权重 ...

  3. 计算机视觉空间域(spatial)注意力机制——CBAM

    首先是结构: CBAM不仅包含senet的channel注意力机制也包含spatial注意力模块 两个attention模块都是使用sigmoid来缩放到[0,1]之间. 更详细的结构:也就是说cha ...

  4. 深度学习中的注意力机制(SENet、ECA、CBAM)pytorch验证

    先验证 SENet 介绍一下:SE注意力机制(Squeeze-and-Excitation Networks),它是一种通道类型的注意力机制,就是在通道维度上增加注意力机制,主要内容是是squeeze ...

  5. 注意力机制原理及其模型发展和应用

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 Attention机制在近几年来在图像,自然语言处理等领域中都取得 ...

  6. 空间注意力机制和通道注意力机制详解

    Attention机制在近几年来在图像,自然语言处理等领域中都取得了重要的突破,被证明有益于提高模型的性能. Attention机制本身也是符合人脑和人眼的感知机制,这次我们主要以计算机视觉领域为例, ...

  7. 综述:计算机视觉中的注意力机制

    作者|xys430381_1 https://blog.csdn.net/xys430381_1/article/details/89323444 本文仅作学术分享,著作权归作者所有,如有侵权,请联系 ...

  8. (很全面)综述---图像处理中的注意力机制

    原文链接:https://blog.csdn.net/xys430381_1/article/details/89323444 重磅好文:微软亚研:对深度神经网络中空间注意力机制的经验性研究 论文:A ...

  9. YOLOV8改进:在c2f模块中的不同位置加入NAMAAttention注意力机制

    NAMAAttention注意力机制简介: 注意力机制是近年来研究的热点之一(Wang et al.[2017],Hu等人[2018],Park等人[2018].Woo等人[2018]和Gao等人[1 ...

最新文章

  1. R语言ggplot2可视化分面图(facet_grid):ggplot2可视化为分面图的每个组添加平均值线条
  2. Matlab如何从dat或者txt文件读入数据
  3. 关于接口测试,我们要测什么,怎么上手
  4. pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库
  5. windows mac 安装lua
  6. P1040,jzoj1167-加分二叉树【树形dp】
  7. web后端开发学习路线_学习后端Web开发的最佳方法
  8. 高并发第一弹:准备阶段 了解高并发
  9. eyoucms 入门必备
  10. ROS机器人操作系统资料与资讯(2018年6月)
  11. Win11快速截屏的4种方法介绍
  12. 实验十四:雨滴传感器实验
  13. python爬虫实战万年历
  14. OSChina 周三乱弹 —— 无他,唯眼熟尔
  15. Android 广告图片 全屏图片适配方案的思路
  16. PyScripter could not load a Python engine解决方案
  17. AQS同步器的实现原理
  18. ROS2可视化利器---Foxglove Studio
  19. Gmail附件大小及格式限制全面解析
  20. android 9.0rom下载,安卓9.0刷机包

热门文章

  1. qt项目移植报的错误和解决方法
  2. TCP SYN-Flood攻击
  3. 浅谈:网站SEO优化导航做法分析及技巧
  4. 计算机丢了文件游戏打不开,你好360检测说我电脑文件缺失现在我电脑里游戏客户端打不开了怎么办...
  5. 交换机端口隔离port-isolate
  6. 2038计算机系统,2038年问题
  7. 随机数字信号处理期末大报告——基于卡尔曼滤波的自由落体运动目标跟踪MATLAB实现
  8. 【周志华机器学习】绪论
  9. 详解分布式 ID 生成器
  10. 昆山计算机等级考试考点,广东计算机等级考试报名时间和地点统计