当前位置: 首页 > news >正文

q @ k运算及att = (q @ k.transpose(-2, -1))含义

以下代码经常在Transformer的算法中见到:q, k, v = qkv[0], qkv[1], qkv[2] # query, key, value tensor
q = q * self.scale
attn = (q @ k.transpose(-2, -1))
 其中涉及到a @ b操作和transpose操作
a = torch.Tensor([[1,2],[3,4]])
print(a)b = torch.Tensor([[0.5,2],[0.5,0.5]])
print(b)print(a@b)输出:
tensor([[1., 2.],[3., 4.]])
tensor([[0.5000, 2.0000],[0.5000, 0.5000]])
tensor([[1.5000, 3.0000],[3.5000, 8.0000]])
import torch
x=torch.randn(12,3,10,20)
y=torch.randn(20,30)
z=x@y
print(z.shape)输出结果:
torch.Size([12, 3, 10, 30])

从以上结果可以发现,默认以最后两维进行矩阵乘法运算

transpose(-2, -1) 表示将 k 的最后两维进行转置(交换位置)

import torch
q = torch.randn(125,2,343,16)
k = torch.randn(125,2,343,16)attn = q @ k.transpose(-2, -1)print(attn.shape)输出:
torch.Size([125, 2, 343, 343])

http://www.lryc.cn/news/335214.html

相关文章:

  • leetcode628-Maximum Product of Three Numbers
  • 本地项目提交 Github
  • Idea中 maven 下载jar出现证书问题
  • ArcGIS Server 10发布要素服务时遇到的数据库注册问题总结(一)
  • 自我介绍的HTML 页面(入门)
  • 负载均衡原理及算法
  • 【iOS ARKit】USDZ文件
  • 鹅厂实习offer
  • 极狐GitLab 如何在 helm 中恢复数据
  • Hololens2远程音视频通话与AR远程空间标注,基于OpenXR+MRTK3+WebRTC实现
  • 2024年03月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析
  • 开发语言漫谈-C#
  • 微信小程序用户登录授权指定(旧版本)
  • 电商技术揭秘十五:数据挖掘与用户行为分析
  • 云原生:5分钟了解一下Kubernetes是什么
  • 【stm32】I2C通信协议
  • 《论文阅读》构建情感共识并利用未配对数据生成共情对话 ACL 2021
  • xilinx fpga 程序固化(含sdk)
  • 更高效、更简洁的 SQL 语句编写丨DolphinDB 基于宏变量的元编程模式详解
  • Python中的sort()与sorted()用法
  • 15.队列集
  • Dubbo 集群容错
  • 杨辉三角形(蓝桥杯,acwing)
  • 计算系数(acwing,数论)
  • 阿里面试题二
  • 第9章 文件和内容管理
  • 【Erlang】【RabbitMQ】Linux(CentOS7)安装Erlang和RabbitMQ
  • pe格式从入门到图形化显示(七)-导出表
  • 图片地址生成二维码(通过前端实现)
  • window安装maven和hadoop3.1.4