1.视频1:self-Attention|自注意力机制 |位置编码 | 理论 + 代码

注意:

q-查询; k-商品标签; v-值(具体商品)

* 不是指乘法,类似概念

a1:相似度; b1:总分

 

若想了解 I   这个词  与其他词的相似度,则用q1分别乘以 k2,k3,k4

若想了解 dog   这个词  与其他词的相似度,则用q4分别乘以 k1,k2,k3

注意:

(1,4,2)  1 表示一个batch size, 4表示一个token, 2表示每个token的长度

位置编码

因为self-attention的输出没有位置信息, 将a4放在最后一个输出的b4,  与  将a4 放在第一个输出的b4,   两个b4完全相同,没有包含位置对其的影响(没有包含位置信息)

 

一共有j个token, 每个token都有i个维度,

对于奇数维度的位置编码,使用cos 生成

对于偶数维度的位置编码,使用sin 生成

2. 视频2:Multi-Head Attention | 算法 + 代码

 

上一节课讲的是 single head

这节课将multi-head,   其中 h表示head的个数

讲了 几种q,k,v的计算方法

方法1:见上个图片,w1 2x6  分成三份(每份 2x2),分别与ai相乘,分别生成三份q,每个q 1x2

方法2:先使用统一的权重, 生成q,k,v, 然后再将q,k,v, 分别切分多个 ,如q切分为q1,q2,q3,q4,q5。

形成多个head

对于每个head,向上一节课那样,分别生成b1,b2...bm

 将得到的b先按列concat,  再按行concat,  得到一个mxd 的矩阵

m表示token的个数;d表示每一个token的维度

代码实现

首先定义一个x,   (1,4,2)

1表示batch size

4表示token个数

2表示token 

 

 

实例化一个类,传入三个参数

第一个参数:dim_in表示输入中每个token的维度(即输入x的最后一个维度)

第二个参数:d_model表示如果使用single self-attention  时,qkv总的向量长度

第三个参数:num_heads表示指定head的个数

指定qkv的总向量长度为6;指定一共有3个head;

所以每个head的维度等于 6/3=2,

定义三个全连接层,分别从输入x中提取qkv

表示每个head的维度 dk

从三个全连接层分别提取q,k,v

提取的qkv的维度等于d_model   即6,  (1,4,6)

将其reshape, 将6拆分为3x2

(1,4,3,2)

3表示3个head

将3进行移动,得到

(1,3,4,2)

4,2表示每个head的qkv的维度,

此时即可以对每个head进行并行处理

第一行表示:

q乘以k的转置,再除以根号下dk,  得到相似度分数

(个人:这里感觉自已听得有问题,没有完全理解)

对dist的最后一个维度做softmax,  然后乘以v  得到b

将b的维度调整为(1,4,3,2)

4表示4个token

3表示3个head

2表示每个b的维度

再将(1,4,3,2)reshape成 (1,4,6)

b最后维度为6

再将b经过全连接层,得到最终结果  ,最终结果的维度也是(1,4,6)

个人:

听得比较迷糊

本来是想听听这个,看看能否理解YOLO11里面的PSA, 还是没有搞懂

 

参考资料:

1.self-Attention|自注意力机制 |位置编码 | 理论 + 代码_哔哩哔哩_bilibili

2.Multi-Head Attention | 算法 + 代码_哔哩哔哩_bilibili

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

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

相关文章

算法题(179):单调栈

审题: 本题是单调栈的模板题 补充:单调栈 单调栈中的数据始终保持单调递增或单调递减 使用情景:给定一个数组,要求寻找 1.某个数左侧,离他最近且值大于他的数 2.某个数左侧,离他最近且值小于他的数 3.某个数…

CF每日5题(1500-1600)

545C 贪心 1500 题意:给 n 棵树在一维数轴上的坐标 xix_ixi​ ,以及它们的长度 hih_ihi​。现在要你砍倒这些树,树可以向左倒也可以向右倒,砍倒的树不能重合、当然也不能覆盖其他的树原来的位置,现在求最大可以砍倒的…

HW蓝队:天眼告警监测分析之Web攻击

Web攻击 信息泄露 敏感数据包括但不限于:口令、密钥、证书、会话标识、License、隐私数据(如短消息的内容)、授权凭据、个人数据(如姓名、住址、电话等)等,在程序文件、配置文件、日志文件、备份文件及数据库中都有可能包含敏感数据 信息收集方法 漏洞分类 备份文…

大腾智能国产3D CAD软件正式上架华为云云商店

深圳市大腾信息技术有限公司(以下简称“大腾智能”)与华为云达成深度合作,大腾智能CAD软件及配套服务通过了华为云在功能适配、安全可用、稳定高效等方面的严选商品认证,已正式上架华为云云商店,成为华为云云商店的联营…

论文复现-windows电脑在pycharm中运行.sh文件

1.更改终端路径(前提:已下载git bash)2.授权打开pycharm终端,输入 chmod x 文件名3.根据当前位置,运行.sh文件

开关电源安全保护电路:浪涌保护、过流保护、过压保护

开关电源安全保护电路:浪涌保护、过流保护、过压保护 引言 对于开关电源而言, 安全、可靠性历来被视为重要的性能之一. 开关电源在电气技术指标满足电子设备正常使用要求的条件下, 还要满足外界或自身电路或负载电路出现故障的情况下也能安全可靠地工作. 为此, 须有多种保护措…

C语言(十)

一、函数概述函数是面向过程编程思想的具体体现,主要作用:降低程序之间的耦合性提高代码的复用性和可维护性一个完整的 C 程序由**一个或多个程序模块(源文件)**组成。为便于开发与调试,通常会将代码拆分为多个源文件&…

QT项目-仿QQ音乐的音乐播放器(第二节)

目录 自定义控件: BtForm类中实现 BtForm上的动画效果 自定义控件: 该控件实际由:图⽚、⽂字、动画三部分组成。图⽚和⽂字分别⽤QLabel展⽰,动画部分内部实际为4 个QLabel。 ① 将BtForm的geometry的宽度和⾼度修改为200*35。…

【世纪龙科技】数字课程资源-新能源汽车概论

一、课程介绍本课程为通过项目任务式教学,全面系统的讲解了新能源汽车的基础知识及相关技能,培养和提高学生的动手能力和理论知识的工程应用能力。以典型工作任务带动知识与技能的学习,采用项目教学培养学生的岗位技能、学习能力和职业素养。…

iOS Core Data 本地数据库 使用详解:从模型关系到数据操作

一、引言:Core Data,在本地数据持久化中的地位在 iOS 开发中,本地数据存储几乎是每一个 App 都绕不开的问题。无论是缓存用户信息、离线浏览内容,还是记录用户操作历史,一个合适的数据持久化方案都能大大提升应用的体验…

Java-79 深入浅出 RPC Dubbo 动态路由架构详解:从规则设计到上线系统集成

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) AI炼丹日志-30-新发布【1T 万亿】参数量大模型!Kim…

Linux内核中动态内存分配函数解析

在C语言中,动态内存分配通常用于在运行时申请内存。在内核编程中,动态内存分配与用户空间有所不同,因为内核需要更谨慎地处理内存,且不能使用用户空间的库(如glibc)。下面我们将详细分析Linux内核中动态申请…

Next.js 中配置不同页面布局方案

在 Next.js 应用中,你可以通过多种方式实现某些页面全屏、某些页面带菜单/页眉/页脚的需求。以下是几种实现方案: 方案一:使用多个布局组件 1. 创建不同的布局组件 // app/default-layout.tsx import Header from /components/header; import…

Spring Boot 使用外置 Servlet 容器:从配置到部署全指南

在 Spring Boot 开发中,我们通常使用嵌入式 Servlet 容器(如 Tomcat),它能将应用打包成可执行 JAR,简化部署流程。但在某些场景下(如需要支持 JSP、复杂的容器定制或企业级部署规范)&#xff0c…

借助AI学习开源代码git0.7之九diff-files

借助AI学习开源代码git0.7之九diff-files diff-files.c 是一个用于比较工作目录中的文件和 Git 索引(暂存区)中文件的工具。 实质上,它是 git diff命令在不指定特定提交时功能的核心实现。 主要功能分析: 1. 核心功能 diff-files …

社区资源媒体管理系统设计与实现

社区资源媒体管理系统设计与实现 1. 系统概述 社区资源媒体管理系统是一个专为社区户外广告打造的高效、专业化平台,旨在实现社区媒体的数字化管理、智能投放和便捷交易。该系统将整合社区各类广告资源,为广告主、物业公司和社区居民提供一站式服务。 1.…

12.1.6 weak_ptr

weak_ptr weak_ptr会指向一个share_ptr&#xff08;使用一个share_ptr来初始化weak_ptr&#xff09;&#xff0c;但并不会增加这个share_ptr的引用计数器&#xff0c;其析构也不会减少share_ptr的引用计数器。 构造函数及使用 #include <iostream> #include <memory&g…

深度分析Java内存模型

Java 内存模型&#xff08;Java Memory Model, JMM&#xff09;是 Java 并发编程的核心基石&#xff0c;它定义了多线程环境下线程如何与主内存&#xff08;Main Memory&#xff09;以及线程的本地内存&#xff08;工作内存&#xff0c;Working Memory&#xff09;交互的规则。…

代码随想录算法训练营第五十二天|图论part3

101. 孤岛的总面积 题目链接&#xff1a;101. 孤岛的总面积 文章讲解&#xff1a;代码随想录 思路&#xff1a; 与岛屿面积差不多&#xff0c;区别是再dfs的时候&#xff0c;如果碰到越界的&#xff0c;需要用一个符号标记这不是孤岛再continue #include <iostream> #i…

前端实现 excel 数据导出,封装方法支持一次导出多个Sheet

一、前言 后台管理项目有时会有需要前端导出excel表格的功能&#xff0c;有时还需要导出多个sheet&#xff0c;并给每个sheet重新命名&#xff0c;下面我们就来实现一下。 二、实现效果图 三、实现步骤 1、 安装 命令行安装 xlsx 和 file-saver npm install xlsx -S npm i…