位置: 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)

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

  • 弹性预算列表式如何计算
  • 等线支付给劳务派遣单位的工资怎么做账
  • 哪些福利费可以进在建工程
  • 劳务外包可以差额纳税吗
  • 税控盘280抵扣报税填在
  • 税务局可以委托公司代征税,你觉得可能吗?
  • 出版产品
  • 税务管理中的非税是指
  • 建筑业一般计税税率
  • 小微企业增值税起征点是多少
  • 欠缴税款的后果
  • 逾期还款银行罚息怎么算
  • 分次缴纳的注册资本入什么科目?
  • 工程款为什么要扣税
  • 没有运输经营范围能不能开运输发票
  • 超市的发票是什么种类
  • 生产企业销售原材料所取得的收入属于( )
  • 支付给业主的赔偿金
  • 个人买卖黄金如何缴税
  • 科技开发属于什么产品
  • 没收的定金 会计分录
  • win11安装更新时出现一些问题
  • php实现文件上传
  • 如何设置两台路由器连接
  • 商会账目
  • 在建工程主要包括哪些
  • 收到客户预付的保费90000元,存入银行
  • 收到保险公司的车赔款会计分录怎么写
  • CoverDesigner.exe是一个安全进程吗 CoverDesigner进程查询
  • win11专业版网卡安不了
  • 体积最小的机械硬盘
  • PHP:iconv_strlen()的用法_iconv函数
  • 开发支出应属于什么科目
  • 固定资产折旧怎么做账务处理
  • 利润表项目本期怎么算
  • 合作社分红怎么计算
  • DOMException: Failed to execute ‘insertBefore‘ on ‘Node‘: The node before which the new node ...报错
  • php下载文件夹
  • 生产企业计提车折旧年限
  • 我的第一次作文400字左右
  • react路由exact
  • java实现电子发票
  • 正则表达式除去指定字母
  • php rtrim
  • 万能转换器mp4
  • 社保退回的款怎么继承
  • 个人终止投资经营的情形
  • 租金算营业成本还是管理费用
  • phpcms 用的是什么模板引擎
  • 固定资产一次性折旧政策2023
  • 企业返聘退休人员需要交社保吗
  • 房地产企业账务处理所用科目
  • 开具红字发票后所冲销的销项税应该怎么处理?
  • 应补税额是要交钱
  • 金税卡就是税控盘吗
  • 公司股权变更所需资金
  • 职工住房补贴能否计入工资总额在税前扣除?
  • 存货期末报表列示
  • 软件开发收费标准
  • sql优化的一般步骤
  • mysql常见报错
  • 服务主机windows错误报告
  • 微软推送windows 11
  • Fedora 13 Final DVD ISO系统下载
  • Mac Chrome打开HTTPS证书错误问题解决方法
  • mac10.5系统
  • win8安装步骤
  • javascript冒泡排序代码
  • 批处理实例
  • web在线编辑excel
  • python语言如何获取随机整数
  • 噩梦剧情
  • shell正则表达式语法
  • jq 使用
  • angularjs常用总结
  • linux给本地用户发邮件
  • bootstrap需要学多久
  • 稽查查补税款享受增值税免税优惠吗
  • 税控专用设备包括哪些
  • 在深圳月薪8000是什么水平
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设