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

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

  • 护膝品牌真假鉴别那种护膝保护最好

    护膝品牌真假鉴别那种护膝保护最好

  • 抖音如何将喜欢的视频隐藏(抖音如何将喜欢设为公开)

    抖音如何将喜欢的视频隐藏(抖音如何将喜欢设为公开)

  • 苹果手机能发微信不能上网(苹果手机能发微信不能打电话)

    苹果手机能发微信不能上网(苹果手机能发微信不能打电话)

  • 光纤是什么材料(塑料光纤是什么材料)

    光纤是什么材料(塑料光纤是什么材料)

  • nova3e和哪个手机壳通用(华为nova3e好还是3i好)

    nova3e和哪个手机壳通用(华为nova3e好还是3i好)

  • 微视号可以更改吗(微视号能改吗?)

    微视号可以更改吗(微视号能改吗?)

  • 快手上禁止卖什么产品(快手禁止销售的九类商品)

    快手上禁止卖什么产品(快手禁止销售的九类商品)

  • 淘宝号在哪看(淘宝号在哪看注册日期)

    淘宝号在哪看(淘宝号在哪看注册日期)

  • 微信通话中断有几种可能(微信打不了语音电话是怎么回事)

    微信通话中断有几种可能(微信打不了语音电话是怎么回事)

  • 快手为什么看不到播放量(快手为什么看不到别人的动态)

    快手为什么看不到播放量(快手为什么看不到别人的动态)

  • 充电盒怎么知道充满了(充电盒怎么知道在充电)

    充电盒怎么知道充满了(充电盒怎么知道在充电)

  • mate20pro人脸无法录入(华为mate20pro人脸录入不了)

    mate20pro人脸无法录入(华为mate20pro人脸录入不了)

  • 小米无线装置已关闭是啥意思(小米无线装置已关闭 提示关闭飞行模式)

    小米无线装置已关闭是啥意思(小米无线装置已关闭 提示关闭飞行模式)

  • oppoa11x支持呼吸灯吗(oppo手机哪款有呼吸灯?)

    oppoa11x支持呼吸灯吗(oppo手机哪款有呼吸灯?)

  • 华为荣耀v20怎么开发者模式(华为荣耀v20怎么样?值得购买么?)

    华为荣耀v20怎么开发者模式(华为荣耀v20怎么样?值得购买么?)

  • 苹果手机怎么拍全景照片怎么拍(苹果手机怎么拍星空夜景)

    苹果手机怎么拍全景照片怎么拍(苹果手机怎么拍星空夜景)

  • wd10ezex是不是叠瓦(wd10jpvx是叠瓦盘吗)

    wd10ezex是不是叠瓦(wd10jpvx是叠瓦盘吗)

  • ColorOS7更新了什么东西(coloros7正式版更新名单)

    ColorOS7更新了什么东西(coloros7正式版更新名单)

  • 小米6充电是多少w(小米6充电是多少瓦)

    小米6充电是多少w(小米6充电是多少瓦)

  • 为什么苹果开热点安卓连不上(为什么苹果开热点电脑搜不到)

    为什么苹果开热点安卓连不上(为什么苹果开热点电脑搜不到)

  • 苹果11pro max屏幕尺寸

    苹果11pro max屏幕尺寸

  • 极米z6x梯形校正哪里找(极米z6x梯形校正超出范围)

    极米z6x梯形校正哪里找(极米z6x梯形校正超出范围)

  • 余额宝累计收益怎么清零(余额宝累计收益的钱怎么转出啊)

    余额宝累计收益怎么清零(余额宝累计收益的钱怎么转出啊)

  • 怎么设置电脑黑屏时间(怎么设置电脑黑屏后再开需要密码)

    怎么设置电脑黑屏时间(怎么设置电脑黑屏后再开需要密码)

  • Win10蓝屏错误提示"NTES_FILE_SYSTEM"信息怎么办?(win10蓝屏错误怎么办)

    Win10蓝屏错误提示"NTES_FILE_SYSTEM"信息怎么办?(win10蓝屏错误怎么办)

  • opencv 一 基本运行环境配置(下载安装、编写代码、配置环境)(opencv详解)

    opencv 一 基本运行环境配置(下载安装、编写代码、配置环境)(opencv详解)

  • 工资储备金制度
  • 配件销售过程中有什么注意事项
  • 建筑公司租赁费会计分录
  • 注册公司工贸和商贸区别
  • 印花税可以申报以前年度吗
  • 财务费用最后怎么结转
  • 非财政补助支出
  • 事业单位财政授权书模板
  • 部门奖金怎么入账
  • 案例分析房产税会计分录怎么写?
  • 关于个人财产转让的规定
  • 企业定期存款是什么账户类型
  • 企业会计制度怎么备案
  • 怎样冲回多提应收账款?
  • 一般纳税人增值税及附加税费申报表怎么填
  • 如何使用腾讯电子签维护自己的权益
  • windows10如何开启vt
  • win11如何恢复win10
  • 华硕win10笔记本如何恢复出厂设置
  • 原始凭证必须具备的基本要素
  • 增值税流转税是什么意思
  • 盘亏应交税费
  • 银行卡透支怎么还
  • 在建工程盘盈计入什么
  • 巴伐利亚知乎
  • 约克大教堂是基督教吗
  • 大前端2021
  • 无偿转让股权印花税计税金额
  • 技术服务费发票图片
  • 劳务支出和应付职工薪酬
  • 在售楼部帮客户卖房犯法吗
  • 研发费用资本化可以加计扣除吗
  • wordpress技巧
  • 领取定额备用金的会计分录
  • 什么是国有划拔土地私房
  • 小规模纳税人减按1%政策
  • 银行共管账户怎么提款
  • 不动产在建工程领用原材料进项税额可以抵扣吗
  • 固定资产工作汇报
  • 小额贷款涉及的法律
  • 餐饮行业购入农产品
  • 事业单位扶贫费用怎么做账
  • 加盟费开发票
  • 理财利息计入什么科目
  • 什么叫做对公转账
  • 生产型企业账务处理方法
  • 成本发票怎么入账
  • 税种工会经费
  • mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例
  • mysql根据另一张表更新
  • mysql7.x单独安装mysql的方法
  • centos更新yum update
  • solaris vi命令
  • vtpwsr
  • win7系统的设置在哪里设置
  • 苹果mac操作系统版本
  • windows7报错
  • win7如何打开远程桌面连接
  • linux d
  • VMware虚拟机下载
  • window系统桌面
  • 找回失窃的书本任务
  • ppap是什么文件
  • php创建注释的方法
  • g++编译debug
  • win10个性化颜色在开始任务栏选不了
  • nodejs异步处理执行顺序
  • 微信小程序实现账号密码登录
  • 如何使用jquery插件
  • html淘宝搜索框代码
  • nodejs命令行参数解析
  • Shell脚本监控日志 出现关键字 grep提醒
  • js数组洗牌
  • python 控制台交互
  • django documentation
  • 如何使用nginx
  • htc windows
  • google it automation with python
  • 广东省国家税务总局稽查局局长
  • 许昌祥和小区二手房出售
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设