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

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

  • 艺人明星们怎样利用微博营销推广(艺人明星们怎样拍戏)

    艺人明星们怎样利用微博营销推广(艺人明星们怎样拍戏)

  • 数据透视表怎么更新数据(数据透视表怎么变成正常的表格)

    数据透视表怎么更新数据(数据透视表怎么变成正常的表格)

  • 微信怎么@所有人(微信怎么@所有人怎么没有所有人)

    微信怎么@所有人(微信怎么@所有人怎么没有所有人)

  • 苹果手机怎么恢复微信聊天记录(苹果手机怎么恢复删除的照片)

    苹果手机怎么恢复微信聊天记录(苹果手机怎么恢复删除的照片)

  • 微信号搜索用户不存在(微信号搜索用户头像不会变)

    微信号搜索用户不存在(微信号搜索用户头像不会变)

  • win10桌面文件夹路径是什么(win10桌面文件夹路径)

    win10桌面文件夹路径是什么(win10桌面文件夹路径)

  • 小米的人工智能叫什么(小米的人工智能为什么叫小爱)

    小米的人工智能叫什么(小米的人工智能为什么叫小爱)

  • 新版qq音乐不能投屏(qq音乐为什么不能听歌了)

    新版qq音乐不能投屏(qq音乐为什么不能听歌了)

  • 请使用登录软件的手机号呼叫对方什么意思(请使用登录软件的)

    请使用登录软件的手机号呼叫对方什么意思(请使用登录软件的)

  • 苹果音乐下载了到期能放吗(苹果音乐下载了可以一直听吗)

    苹果音乐下载了到期能放吗(苹果音乐下载了可以一直听吗)

  • 华为手机照片文件夹名称(华为手机照片文字转换成文字)

    华为手机照片文件夹名称(华为手机照片文字转换成文字)

  • 苹果哪几款支持nfc(苹果哪几款支持快充)

    苹果哪几款支持nfc(苹果哪几款支持快充)

  • 怎么隐藏热点(怎么隐藏热点不让别人发现)

    怎么隐藏热点(怎么隐藏热点不让别人发现)

  • 如何把手机内存调大(如何把手机内存扩大)

    如何把手机内存调大(如何把手机内存扩大)

  • 手机显示无线网已连接但上不了网(手机连无线网显示)

    手机显示无线网已连接但上不了网(手机连无线网显示)

  • 抖音视频为啥浏览量为0(抖音视频为啥浏览多点赞评论少)

    抖音视频为啥浏览量为0(抖音视频为啥浏览多点赞评论少)

  • vivox9plus带不带nfc(vivo x9plus带nfc功能吗)

    vivox9plus带不带nfc(vivo x9plus带nfc功能吗)

  • 苹果手机11系列如何截屏

    苹果手机11系列如何截屏

  • 什么软件可以打电话不显示手机号(什么软件可以打开dwg图纸)

    什么软件可以打电话不显示手机号(什么软件可以打开dwg图纸)

  • 苹果xr厚度是多少毫米(xr厚度多少毫米)

    苹果xr厚度是多少毫米(xr厚度多少毫米)

  • oppoa9语音助手在哪里(oppoa9语音助手在哪里设置)

    oppoa9语音助手在哪里(oppoa9语音助手在哪里设置)

  • 抖音怎么找回删除草稿(抖音怎么找回删除的好友)

    抖音怎么找回删除草稿(抖音怎么找回删除的好友)

  • 流量管理在哪里(手机流量管理在哪里)

    流量管理在哪里(手机流量管理在哪里)

  • 无线中继和桥接的区别(无线中继和桥接一样吗)

    无线中继和桥接的区别(无线中继和桥接一样吗)

  • 为什么windows错误恢复?(win10老是错误)

    为什么windows错误恢复?(win10老是错误)

  • 捐赠支出增值税
  • 房地产公司自用房屋销售土地增值税计算
  • 个人所得税网上申报
  • 小规模纳税人利息收入增值税税率
  • 个人独资企业是有限责任还是无限责任
  • 进项抵扣联丢了怎么办
  • 机械租赁增值税税率2022年
  • 刷信用卡付货款怎么操作
  • 个人独资企业法人承担什么责任
  • 企业收到发要失控发票做进项税额转出如何做税务处理?
  • 小规模纳税人工资可以抵扣增值税吗
  • 道路运输业税率多少
  • 金税盘问题
  • 税务局代增值税普通发票流程
  • 贷款本金余额具体是什么意思
  • 土地出让金契税什么时候缴纳
  • 贸易企业出口退税的操作明细流程
  • win11 zen1
  • 物流公司支付运费怎么做账
  • 股东以房产投资入股,增值税免吗
  • 存货成本要加上税费吗
  • 跨年发票税务处理两大原则
  • 怎么用U盘装系统win7
  • 摊余成本等于什么
  • php array数组
  • 承包经营税率表
  • 产品出库单什么时候入账
  • php100 jquery教程
  • 公司电路改造费怎么账务处理
  • 共轭梯度法matlab代码
  • vue3 hooks实现
  • vue指定
  • 什么叫web渗透测试
  • 基于YOLOv5的中式快餐店菜品识别系统
  • yii2框架和fastadmin建商城网站哪个好用
  • 赠品视同销售会计分录要如何编制?
  • 自营与代理
  • 以固定资产增资流程是怎样操作
  • 退社保基金怎么办理
  • 红字记账是什么意思
  • SQL SERVER 2008 64位系统无法导入ACCESS/EXCEL怎么办
  • php访问mysql数据库函数
  • mac安装brew
  • mongodb创建库
  • 固定资产直接进费用表示表示一次性计提折旧
  • 公司注销实收资本怎么处理
  • 小规模减免的增值税要交所得税吗
  • 商业企业购入商品
  • 应收应付抹零账务处理
  • 餐饮企业原材料采购描述错误的是
  • 报表其他应收款包括哪些内容
  • 工人发生工伤的责任划分
  • 小企业营业外收入包括
  • 收到货款确认收入还是开好发票确认收入
  • 生产的产品不合格,追究时公司已经注销
  • 增值税对企业
  • 理财产品利息计入本金吗
  • 应计入财务费用的科目是
  • 农产品进项税额会计分录
  • 现金折扣与商业折扣的计算
  • 公司买车可以抵税几年
  • 数据表的联接
  • 怎么停止u盘自动运行
  • win8系统如何关机
  • 新品分析表格
  • windows模拟器(可安装电脑软件)
  • 电脑win7怎么样
  • win8.1的开始菜单在哪
  • vm虚拟机中的浏览器在哪
  • os x10.11el capitan beta2下载地址
  • centos 查看文件夹
  • WINDOWS系统还原主要作用
  • 微软十周年
  • windows8安装程序
  • 常用原生js兼容软件
  • jquery validate表单校验
  • 可扩展的敏捷方法有哪两种观点,并作以简单阐述?
  • 使用灭火器时要对准火焰的什么部位喷射
  • 税控盘换新会影响旧盘数据吗
  • 国家税务局宝鸡市税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设