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

news2025/1/16 13:57:36

一、注意力机制

产生背景: 大数据时代,有很多数据提供给我们。对于人来说,可以利用重要的数据,过滤掉不重要的数据。那对于模型来说(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+h
	x_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, w
	x_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, 1
	s_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.coloradmin.cn/o/1519150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

APP开发如何成功上架到应用市场?

在当今移动互联网时代,开发一款优秀的APP并将其成功上架到各大应用市场是每个开发者梦寐以求的成就之一。但是,不同类型的APP在上架过程中可能会面临各种不同的挑战和要求。 APP上架到应用市场一般包括以下几个流程: 步骤一:开发及…

web部署 三

案例: 1/在其中一个网站目录下创建\software文件夹,里面放txtppt/mp4/iso,文件类型。 2/web站点目录浏览启动应用。 3/用win10客户机浏览software目录下文件,并下载。txtppt/mp4/iso,发现问题并解决。 首先我们先建立一个software的文件夹并…

Linux控制台、终端、Shell 的历史

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系! ①微思网络,始于2002年!专注IT认证培训22年。 ② 领取学习资料/课程咨询:小美老师(wx)&…

工作中Git如何切换远程仓库地址

工作中Git如何切换远程仓库地址 部门之前的仓库不用了,重新建了一个仓库,但是上传代码还是上传到了之前的仓库里面了,所以得进行修改,下面将修改地址的方法进行操作。 方法一、直接修改远程仓库地址 查看当前远程仓库地址 git …

【图形界面】学生宿舍信息管理系统,简单,模板框架,含完整代码

目录 开发一个学生宿舍管理系统 概述 开发环境 程序设计 功能展示 主菜单 添加学生信息界面 删除学生信息界面 修改学生信息界面 查询学生信息界面 5. 完整代码 6. 总结 开发一个学生宿舍管理系统 在本文中,我们将介绍如何使用Python和Tkinter库开发一…

P1149 [NOIP2008 提高组] 火柴棒等式

题目描述 给你 �n 根火柴棍,你可以拼出多少个形如 ���ABC 的等式?等式中的 �A、�B、�C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 00&…

【MySQL】4. 表的操作

表的操作 1. 创建表 语法: CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;说明: field 表示列名 datatype 表示列的类型 character set 字符集&#xff0c…

iOS面试题锦集

1. 问:一张图片所占内存大小跟什么有关? 图片所占内存大小,与图片的宽高有关 我们平时看到的png、jpg、webp这些图片格式,其实都是图片压缩格式。通过对应的算法来优化了大小以节省网络传输与本地保存所需的资源。 但是当我们加…

Nuxt3配置本地访问链接 -- Network: use --host to expose

这种表示没有在线访问本地链接 在nuxt.config.ts里面 export default defineNuxtConfig({// 配置本地访问链接devServer: {host: 192.168.1.41,//自己电脑的Ipport: 3000,}, }) 复制到浏览器就可以访问,给别人使用必须是局域网,同一个网络

FreeRTOS学习第10篇--队列使用示例

FreeRTOS学习第10篇–队列使用示例 本文目标:FreeRTOS学习第10篇–队列使用示例 按照本文的描述,可以进行简单的使用队列。 本文实验条件:拥有C语言基础,装有编译和集成的开发环境,比如:Keil uVision5 …

独家授权!广东盈世获网易邮箱反垃圾服务的独家授权,邮件反垃圾更全面

近日,广东盈世计算机科技有限公司(以下简称“Coremail”)成功获得了网易(杭州)网络有限公司(以下简称“网易”)授予的网易邮箱反垃圾服务独家使用权。这一授权使得Coremail能够在邮件安全产品上…

创建出色用户界面的五个关键技巧,助您实现用户体验的提升!

易于理解的用户界面通常很容易阅读,它们有美丽的布局和完美的颜色组合,通过提供简单和直观的选项,告诉用户应用程序可以做什么。 因此,在创建用户界面时,(UI)当时,UI设计师往往优先…

人大金仓大小写敏感处理

人大金仓安装的时候,不管是否选择大小写敏感;查询的时候加和不加双引号,查询出来的都是小写 针对人大金仓大小写,我们实际引用全是大写的情况,解决方案如下 添加配置,将查询结果全都转成大写 1、本地打开…

FastAPI 是什么?深入解析

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建基于 Python 的 API。它是一个开源项目,基于 Starlette 和 Pydantic 库构建而成,提供了强大的功能和高效的性能。 FastAPI 官网地址:fastapi.tiango…

npm WARN config init.license Use `--init-license` instead.

背景:近期升级本地node版本(v14.15.4 --> v18.19.1),npm -v报警 npm WARN config init.license Use --init-license instead. npm WARN config init.author.name Use --init-author-name instead. 分析: npm高版本…

使用pgadmin备份数据库

本人菜鸟, 在使用PostgreSQL数据库的时候, 经常会用到这个pgadmin的可视化工具 这个工具提供了很简单的备份和还原方法, 操作如下 备份 (1)首先鼠标右键选中你要备份的数据库,如图的 LBSYS (2)然后点击 backup (…

【SVG】前端-不依靠第三方包怎么画连线???

如何用SVG实现连线功能 在Web开发中,我们经常会遇到需要在页面上绘制图形或者实现一些图形交互的场景。SVG(Scalable Vector Graphics)作为一种用于描述二维图形的XML标记语言,在这方面提供了极大的便利。本文将以一个具体的例子…

WordPress网站启用cloudflare的CDN加速后,网站出现多重定向无法访问

这是一个使用Hostease的Linux虚拟主机的客户反馈的问题,Hostease的虚拟主机使用的也是cPanel面板,客户使用的是cPanel的softaculous安装的WordPress,但是在安装完成后,并且解析了域名之后,发现网站无法访问&#xff0c…

高校实验室科研仪器开放共享存在的问题及对策建议

随着科技的迅速发展和高校科研水平的提高,高校实验室科研仪器的开放共享已经成为推动科研进步和创新发展的重要手段。然而,在实际操作中,我们也面临着诸多问题和挑战。本文将分析高校实验室科研仪器开放共享存在的问题,并提出相应…

java复健-接口的开发及参数校验

遇到的问题以及解决方案 Q1. 开发接口的流程 A1: 明确需求阅读接口文档思路分析开发测试 Q2. 开发时用到的技术 A2: LomBok:Data,自动为我们的实体类创建构造方法,set(),get&am…