位置: IT常识 - 正文

深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)

编辑:rootadmin
深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)

目录

常用的注意力机制模型

SE Attention

CBAM Attention

CBAM Attention 模型结构​

CBAM Attention 代码实现(Pytorch版):

 注意力机制加到网络的哪里合适


常用的注意力机制模型

推荐整理分享深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)

常用的注意力机制多为SE Attention和CBAM Attention。它们基本都可以当成一个简单的网络。例如SE注意力机制,它主要就是由两个全连接层组成,这就是一个简单的MLP模型,只是它的输出变了样。所以,在我们把注意力机制加入主干网络里时,所选注意力机制的复杂程度也是我们要考虑的一个方面,因为增加注意力机制,也变相的增加了我们网络的深度,大小。

SE Attention

详见这篇博文

经典网络模型-SENet注意力机制_L888666Q的博客-CSDN博客_senet网络模型

CBAM Attention

CBAM(Convolutional Block Attention Module) 表示卷积模块的注意力机制模块。是一种结合了空间(spatial)和通道(channel)的注意力机制模块。一般情况下,相比于SEnet只关注通道(channel)的注意力机制可以取得更好的效果。其中CBAM的结构如下面两张图,由Channel Attention和 Spatial Attention这两个模块组成,其中Channel Attention模块和SENet是十分相似的,只是在池化上做了最大和平均池化,把FC层换成了卷积。至于Spatial Attention模块,这个更为简单,本质上就是一个卷积层。论文地址

CBAM Attention 模型结构CBAM Attention 代码实现(Pytorch版):import numpy as npimport torchfrom torch import nnfrom torch.nn import initclass ChannelAttention(nn.Module): def __init__(self,channel,reduction=16): super().__init__() self.maxpool=nn.AdaptiveMaxPool2d(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 forward(self, x): b, c, _, _ = x.size() residual=x out=x*self.ca(x) out=out*self.sa(out) return out+residual 注意力机制加到网络的哪里合适

注意力机制是一个独立的块,一般来说加在哪里都是可以的,但是,注意机制加入我们的网络中时,他是会影响我们网络的特征提取的,即它注意的特征不一定都是我们重要的特征。所以注意力机制加入我们网络的位置就比较重要了。当我我们使用一个注意力机制不知道加在哪里时可以去看看提出注意力机制作者的源代码。如CBAM注意力机制的源代码,加在了残差网络(以resnet18为例)的残差块后面。如果我们使用的网络不是注意力机制作者使用的网络,建议加在最后一个卷积层后面或者第一个全连接层前面。当然并不是每个注意力机制或者每个网络都适用,因为不同的注意力机制注意的地方可能都不一样,所以加到主干网络的地方可能也不一样。  

本文链接地址:https://www.jiuchutong.com/zhishi/295880.html 转载请保留说明!

上一篇:VsCode安装yarn:yarn : 无法将“yarn”项识别为 cmdlet、函数、脚本文件或可运行程序的名(vscode安装python3)

下一篇:元宇宙、区块链 通俗易懂(元宇宙区块链数字货币)

  • qq怎么设置隐藏不展示(qq怎么设置隐藏空间访问)

    qq怎么设置隐藏不展示(qq怎么设置隐藏空间访问)

  • 苹果平板竖屏改成横屏怎么改(苹果平板竖屏设置在哪里设置方法)

    苹果平板竖屏改成横屏怎么改(苹果平板竖屏设置在哪里设置方法)

  • 怎么重装系统(笔记本系统怎么重装系统)

    怎么重装系统(笔记本系统怎么重装系统)

  • 苹果11返回键怎么设置小圆圈(苹果11返回键怎么设置出来)

    苹果11返回键怎么设置小圆圈(苹果11返回键怎么设置出来)

  • 苹果不会开放iccid解锁了吗(iphone没有iccid)

    苹果不会开放iccid解锁了吗(iphone没有iccid)

  • 荣耀笔记本是华为的吗(荣耀笔记本是华为的产品吗)

    荣耀笔记本是华为的吗(荣耀笔记本是华为的产品吗)

  • 小红书怎么看直播回放(小红书怎么看直播数据)

    小红书怎么看直播回放(小红书怎么看直播数据)

  • 为什么抖音直播看不到音浪(为什么抖音直播间打字别人看不见)

    为什么抖音直播看不到音浪(为什么抖音直播间打字别人看不见)

  • qq视频最多几个人开摄像头(qq能放多少视频)

    qq视频最多几个人开摄像头(qq能放多少视频)

  • 显卡接口有哪几种(显卡接口有哪几种型号)

    显卡接口有哪几种(显卡接口有哪几种型号)

  • 抖音为什么不能搜视频(抖音为什么不能微信支付)

    抖音为什么不能搜视频(抖音为什么不能微信支付)

  • qq活跃等级怎么升(qq活跃等级怎么设置)

    qq活跃等级怎么升(qq活跃等级怎么设置)

  • 电脑开机后黑屏显示英文(电脑开机后黑屏进入不了桌面怎么解决)

    电脑开机后黑屏显示英文(电脑开机后黑屏进入不了桌面怎么解决)

  • 电脑安装软件安装在哪个盘里面(电脑安装软件安装包在哪里)

    电脑安装软件安装在哪个盘里面(电脑安装软件安装包在哪里)

  • ps如何吸取颜色(ps如何吸取颜色并涂抹)

    ps如何吸取颜色(ps如何吸取颜色并涂抹)

  • iphone8如何横屏玩(iphone8怎么设置横竖屏)

    iphone8如何横屏玩(iphone8怎么设置横竖屏)

  • 华为mate30pro5g外观尺寸(华为mate30pro5G外屏碎了点二手卖多少钱)

    华为mate30pro5g外观尺寸(华为mate30pro5G外屏碎了点二手卖多少钱)

  • 旺旺id是什么怎么查看(旺旺id是啥意思)

    旺旺id是什么怎么查看(旺旺id是啥意思)

  • 淘宝如何进行7天无理由退换货(淘宝如何进行7天退货)

    淘宝如何进行7天无理由退换货(淘宝如何进行7天退货)

  • iphone所有型号上市顺序(iphone所有型号上市价格)

    iphone所有型号上市顺序(iphone所有型号上市价格)

  • win11休眠选项不见了怎么办? windows11添加休眠选项的方法(window休眠)

    win11休眠选项不见了怎么办? windows11添加休眠选项的方法(window休眠)

  • 怀特霍斯市的落日余晖,加拿大育空地区 (© Robert Postma/Design Pics)(怀特霍尔)

    怀特霍斯市的落日余晖,加拿大育空地区 (© Robert Postma/Design Pics)(怀特霍尔)

  • BootStrap基本使用(bootstrap步骤)

    BootStrap基本使用(bootstrap步骤)

  • 小规模纳税人可以开9%专票吗
  • 原材料报废可以退税吗
  • 抵进项税分录
  • 税前利润是什么利润
  • 附加税计税依据文件
  • 发票勾选错了已报税怎么办
  • 小微企业注册流程及费用微
  • 未确认融资收益对应的科目是什么
  • 劳务成本会计科目
  • 财务报表中利润怎么算
  • 与收益相关的政府补助会计分录总额法
  • 损益类账户的会计要素有哪些
  • 公车补贴计入什么科目
  • 营改增后如何纳税
  • 电子发票开错了怎么解决?
  • 营业外收入用不用交企业所得税
  • 私募投资基金投资者风险问卷调查
  • 直接收费金融服务、提供贷款服务和金融商品转让税率
  • 年底增值税有余额吗
  • 发票作废了还能查验吗
  • 无票收入增值税申报表怎么填小规模纳税人
  • 补缴的增值税可以计入以前年度损益调整
  • 消费税税目是否含税
  • 企业年检网上申报时间
  • 小规模企业低值易耗品摊销方法
  • 研发费用的税收政策
  • 营改增后装饰公司税率
  • 王者荣耀中白起的台词
  • 如何禁用开始目录的app自动推荐
  • win11咋截屏
  • Mac如何开启无痕浏览
  • 若依框架登录后跳转到指定页面
  • 只有高新技术企业能享受研发加计扣除吗
  • php反射使用场景
  • 股权转让个人所得税优惠政策
  • 分公司能不能独立法人
  • PHP:imagecolorat()的用法_GD库图像处理函数
  • composer安装不知道这样的主机
  • 企业重组特殊性税务处理计税基础
  • 高新技术企业取消资格的程序
  • php读取xml接口数据
  • 小规模未达起征点免税分录
  • 编译和链接的区别是什么
  • package.json详解
  • php调用java接口
  • 离线开票限额怎么办
  • 详细步骤怎么写
  • 计提应收账款坏账准备属于谨慎性吗
  • 分公司注销需要什么材料
  • 商品购进核算
  • 高新技术企业核心人才保险
  • 抵扣联过期时间
  • 研发费用账务处理一定在管理费用吗
  • 国有独资企业是有限责任公司吗
  • 公司买车可以少多少钱
  • 付款后没有发票怎么办
  • 超市小票能作为证据用吗
  • 资本公积和盈余公积的用途
  • 培训公司会计账务处理
  • 赠送给客户的商品怎么做会计分录
  • rhel安装mysql
  • mac所有窗口最小化
  • win10预览版21277下载
  • centos7 lvs
  • 让xp系统自动修复软件
  • win7禁用开机启动服务
  • 在linux中使用什么命令可以执行shell脚本
  • JavaScript的Ext JS框架中的GridPanel组件使用指南
  • 仿客齐集首页导航条DIV+CSS+JS [代码实例]
  • 贴吧热门评论
  • bootstrap技术
  • jquery的dialog怎么使用
  • javascript module
  • jquery validator
  • unity 3d online document
  • androidmvvm框架
  • python怎么用
  • js 模板框架
  • 高速通行费发票查验
  • 企业投资项目备案表模板
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设