注意力机制Attention、CA注意力机制

一、注意力机制

产生背景: 大数据时代,有很多数据提供给我们。对于人来说,可以利用重要的数据,过滤掉不重要的数据。那对于模型来说(CNN、LSTM),很难决定什么重要、什么不重要,因此,注意力机制产生了。
注意力机制——把焦点聚焦在比较重要的事物上。
原理:
看查询对象Q和被查询对象K的相似度。
一般使用点乘的方式。点乘其实就是求内积。
Q,K = k1,k2,k3 … …
通过点乘,计算Q和K里的每一个事物的相似度,拿到Q和k1的相似值s1,Q和k2的相似值s2 。。。
做一层softmax(s1,s2,...,sn) 就可以得到概率a1,a2,…,an
(进而就可以找出哪个对Q更重要)
那么a就代表数据的权重,v是数据本身,a*v就是处理之后的数据。
在这里插入图片描述注意力机制教程

二、CA注意力机制

产生背景: 现有的注意力机制其通道的处理一般是采用全局最大池化/平均池化,这样会损失掉物体的空间信息
优势: CA注意力机制可以把位置信息嵌入到通道注意力中。

注:图中第三行r是一个缩减系数,可以减少整个注意力机制的参数量。
请添加图片描述P2 在pytorch中如何实现
attention.py中的forward部分如下

def forward(self,x): # x的参数有 batch_size, c, h, w_, _, h, w = x.size()# batch_size, c, h, w => batch_size, c, h, 1 => batch_size, c, 1, h x_h = torch.mean(x, dim = 3, keepdim = True).permute(0,1,3,2) #提取高方向上的信息。# mean压缩,压缩第三个维度的值,也就是给w的值变成1。permute调换维度顺序。x_w = torch.mean(x, dim = 2, keepdim = True)# batch_size, c, 1, w cat batch_size, c, 1, h => batch_size , c, 1, w+h# batch_size , c, 1, w+h => batch_size, c/r, 1, w+hx_cat_conv_relu = self.relu(self.bn(self.conv_1x1(torch.cat((x_h, x_w), 3))))# batch_size, c/r, 1, w+h => batch_size, c/r, 1, h 和 batch_size, c/r, 1, wx_cat_conv_split_h, x_cat_conv_split_w = x_cat_conv_relu([h,w],3)# batch_size, c/r, 1, h =>batch_size, c/r, h, 1 => batch_size, c, h, 1s_h = self.sigmoid_h(self.F_h(x_cat_conv_split_h.permute(0,1,3,2)))s_w = self.sigmoid_h(self.F_h(x_cat_conv_split_w)#s_h 在宽方向上拓展回来,s_w同理out = x*s_h.expand_as(x)*s_w.expand_as(x)return out

P3 如何在网络中应用也还没学,挖坑
CA注意力机制教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/276377.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QComboBox相关的qss学习

QT有关QCobobox控件的样式设置(圆角、下拉框,向上展开、可编辑、内部布局等)_qcombobox样式-CSDN博客 原始图: 红色边框: QComboBox{ border:2px solid rgb(255, 85, 0); } 绿色背景: QComboBox{ border…

疫情网课管理系统|基于springboot框架+ Mysql+Java+Tomcat的疫情网课管理系统设计与实现(可运行源码+数据库+设计文档+部署说明)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 ​编辑 学生功能模块 管理员功能 教师功能模块 系统功能设计 数据库E-R图设计 lun…

【趣味项目】一键生成LICENSE

【趣味项目】一键生成LICENSE 项目地址:GitHub(最新版本) | GitCode(旧版本) 项目介绍 一款用于自动生成开源项目协议的工具,可以通过 npm 进行安装后在命令行使用,非常方便 使用方式 npm install xxhls/get-license -gget-license --l…

ELK之使用Filebeat插件收集日志到Logstash

对于Springboot项目接入ELK非常方便,对于非maven,非Spring项目来说就比较复杂,这个时候我们就可以使用Filebeat插件还完成日志的收集发送工作。 Filebeat介绍 Filebeat是用于转发和收集数据的轻量级工具,Filebeat可以监视指定的…

蓝桥杯深度优先搜索|剪枝|N皇后问题|路径之谜(C++)

搜索:暴力法算法思想的具体实现 搜索:通用的方法,一个问题如果比较难,那么先尝试一下搜索,或许能启发出更好的算法 技巧:竞赛时遇到不会的难题,用搜索提交一下,说不定部分判题数据很…

致净·未来 华帝核心渠道(V60)生态大会在上海外滩举办

“百年未有之大变局就是中国崛起了,我们民族品牌崛起了!”龙永图在华帝核心渠道(V60)生态大会上如此说道。 干净舒适的厨房空间,高档时尚的厨房电器,智能便捷的科技设计,372项“好清洁”技术为净洁厨房保驾护航……这些充满未来科幻感的时尚健康生活,过去我们难以想象,如今梦想…

CleanMyMac X2024永久免费的强大的Mac清理工具

作为产品功能介绍专员,很高兴向您详细介绍CleanMyMac X这款强大的Mac清理工具。CleanMyMac X具有广泛的清理能力,支持多种文件类型的清理,让您的Mac始终保持最佳状态。 系统垃圾 CleanMyMac X能够深入系统内部,智能识别并清理各种…

java中几种对象存储(文件存储)中间件的介绍

一、前言 在博主得到系统中使用的对象存储主要有OSS(阿里云的对象存储) COS(腾讯云的对象存储)OBS(华为云的对象存储)还有就是MinIO 这些玩意。其实这种东西大差不差,几乎实现方式都是一样&…

蓝桥杯刷题|02入门真题

[蓝桥杯 2022 省 B] 刷题统计 题目描述 小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天做 a 道题目,周六和周日每天做 b 道题目。请你帮小明计算,按照计划他将在第几天实现做题数大于等于 n 题? 输入格式 输入一行包含三个整数…

1.Python数据分析—数据分析与挖掘详讲

1.Python数据分析—数据分析与挖掘详讲 一个人简介二数据分析与挖掘概述三什么是数据分析和挖掘四数据分析与挖掘在不同领域的应用4.1医疗领域:4.1.1 建立疾病数据库:4.1.2 临床决策支持:4.1.3 疾病预警和监控: 4.2 电子商务领域&…

详细介绍Seq2Seq、Attention、Transformer !!

文章目录 前言 1、Seq2Seq工作原理 核心思想 工作原理 Encoder(编码器) Dncoder(解码器) 2、Attention工作原理 核心逻辑:从关注全部到关注重点 工作原理 Encoder(编码器) Decoder(解…

什么是分段锁?

1、典型回答 分段锁是一种将锁细化到每个段(Segment) 级别的锁设计。在 ConcurrentHashMap 中,它将整个数据结构分成多个段,每个段只锁定自己的一部分数据。每个段可以看作是一个独立的分组,只锁定该段(Segment)内部的数据操作,不…

Kyligence 亮相 Gartner 数据与分析峰会,生成式 AI 落地赋能业务

3月11日-13日,Gartner 2024 数据与分析峰会 (Gartner Data & Analytics Summit) 在美国奥兰多盛大召开。作为全球领先的大数据分析和指标平台供应商,Kyligence 出席本次峰会并发表了 Kyligence: AI Enables Intelligent PDCA(AI 赋能从计…

蓝桥·算法双周赛|第七场分级赛——小白入门赛

&#x1f525;博客介绍&#xff1a; 27dCnc &#x1f3a5;系列专栏&#xff1a; <<数据结构与算法>> << 算法入门>> << C项目>> &#x1f3a5; 当前专栏: << 算法入门>> 专题 : 数据结构帮助小白快速入门算法 &#x1f4…

QMI8658芯片I2C驱动开发指南

这个芯片纯国产挺好用的&#xff0c;电路很好设计&#xff0c;我这垃圾焊功&#xff0c;纯手焊&#xff0c;&#xff0c;居然能用。 第一部分 硬件连接 画的很简陋&#xff0c;看看就可以了&#xff0c;这里I2C总线需要接10K上拉没有画出来&#xff0c;这个需要注意一下。 …

【C++初阶】C++入门(上)

C的认识 ①什么是C&#xff1f; ​ C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。 ​ 于是1982年&#xff0c;Bjarne Stroustrup&#xff08;本…

scrcpy远程投屏控制Android

下载 下载后解压压缩包scrcpy-win64-v2.4.zip scrcpy连接手机 1. 有线连接 - 手机开启开发者选项&#xff0c;并开启USB调试&#xff0c;连接电脑&#xff0c;华为手机示例解压scrcpy&#xff0c;在scrcpy目录下打开终端&#xff0c;&#xff08;或添加scrcpy路径为环境变…

Android和IOS应用开发-Flutter 应用中实现记录和使用全局状态的几种方法

文章目录 在Flutter中记录和使用全局状态使用 Provider步骤1步骤2步骤3 使用 BLoC步骤1步骤2步骤3 使用 GetX&#xff1a;步骤1步骤2步骤3 在Flutter中记录和使用全局状态 在 Flutter 应用中&#xff0c;您可以使用以下几种方法来实现记录和使用全局状态&#xff0c;并在整个应…

【Twinmotion】Twinmotion导入UE5

步骤 1. 在虚幻商城中安装“Datasmith Twinmotion导入器插件” 安装“面向虚幻引擎的Twinmotion内容” 2. 打开虚幻引擎&#xff0c;在插件中搜索“twinmotion”&#xff0c;勾选如下两个插件&#xff0c;然后重启虚幻引擎 3. 打开Twinmotion&#xff0c;随便添加一个物体 导出…

【创作者纪念日1095天3年】我的创作纪念日

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;CSDN博客专家   &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01…