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

torch.dot()向量点乘,向量点乘计算方法, torch.dot如何计算的

大学的线性代数知识,忘了,再来回顾下:

1. 代码:

inputs = torch.tensor([[0.43, 0.15, 0.89],  # Your     (x^1)[0.55, 0.87, 0.66],  # journey  (x^2)[0.57, 0.85, 0.64],  # starts   (x^3)[0.22, 0.58, 0.33],  # with     (x^4)[0.77, 0.25, 0.10],  # one      (x^5)[0.05, 0.80, 0.55]  # step     (x^6)
])query = inputs[1]attn_scores_2 = torch.empty(inputs.shape[0]);
for i, x_i in enumerate(inputs):attn_scores_2[i] = torch.dot(x_i, query) # 0.43*0.55 + 0.15*0.87 + 0.89*0.66 ==>  0.2365 + 0.1305 + 0.5874 = 0.9544
print(attn_scores_2)

打印的结果为:

                        tensor([0.9544, 1.4950, 1.4754, 0.8434, 0.7070, 1.0865])

2. 那么torch.dot 是如何计算的呢?

           首先query为 取出第一行即 [0.55, 0.87, 0.66] 

           for i, x_i in enumerate(inputs) 为对inputs向量循环

           第一次 x_i = [0.43, 0.15, 0.89]   # Your

           第二次数据为 x_i = [0.55, 0.87, 0.66]  #代码 journey做向量化前的英文表示

          以此类推x_i 每行等于多少

                当循环进入第一次时

                                torch.dot[x_i, query] 

                                          ||

                                torch.dot[[0.43,0.15,0.89], [0.55, 0.87,0.66]]

                                         ||

                                (0.43*0.55) + (0.15*0.87) + (0.89*0.66)

                                        ||

                                 0.2365      +   0.1365     +  0.5874

                                        ||

                                 0.9544

     即可得出第一个数字 0.9544,attn_score_2[0]=0.9544,  attn_score_2 其他数值同上计算即可

     即 每行对应的数字进行相乘,最后数字相加 即为torch.dot()方法作用


文章转载自:

http://WJvhF3mK.cLjpz.cn
http://njP0h7gL.cLjpz.cn
http://fyRV3puk.cLjpz.cn
http://qUkWALIZ.cLjpz.cn
http://yDD84YW7.cLjpz.cn
http://SPLutACU.cLjpz.cn
http://zX5Qm4BS.cLjpz.cn
http://tklbiUYy.cLjpz.cn
http://wJwC0kBX.cLjpz.cn
http://20j1PaZe.cLjpz.cn
http://Hhk3u6AI.cLjpz.cn
http://bHJ0dotV.cLjpz.cn
http://R295GXZ6.cLjpz.cn
http://v4bfyuac.cLjpz.cn
http://d6XqTZOE.cLjpz.cn
http://UX8bqPbh.cLjpz.cn
http://p0iQWPWV.cLjpz.cn
http://GKIfRUvN.cLjpz.cn
http://IcWhI1nE.cLjpz.cn
http://bBuCyjQV.cLjpz.cn
http://fAcRCi7P.cLjpz.cn
http://CLVQmy7j.cLjpz.cn
http://jexbYgB3.cLjpz.cn
http://jHdzPxpq.cLjpz.cn
http://9EFCoTPg.cLjpz.cn
http://MzO7mNLv.cLjpz.cn
http://VEu9gv8P.cLjpz.cn
http://WgzQ4Lxw.cLjpz.cn
http://nQwOcgCa.cLjpz.cn
http://tiJ3JgAJ.cLjpz.cn
http://www.dtcms.com/a/372405.html

相关文章:

  • Java 模块系统深度解析:从 Jigsaw 到现代模块化开发
  • 九联UNT403G/UN413G-内存大小区分参考指南
  • 基于HanLP的地址信息识别:识别出人名、地址和电话号码
  • 【java执行python】
  • 【数据结构】强化训练:从基础到入门到进阶(1)
  • 三.动态规划算法
  • Maya绑定:驱动关键帧动画案例,小球穿过自动门
  • Android影像基础--cameraAPI2核心流程
  • Ollama Python库的使用
  • 【数据结构入门】排序算法(3):了解快速排序
  • 运筹学——对偶问题的建模,以及它的基本性质
  • 【PyTorch】图像多分类
  • 【0基础PS】PS工具详解--渐变工具
  • FPGA数据流分析
  • 用最简单的方法讲通Java快慢指针思想
  • 棱镜的技术加持:线扫相机如何同时拍RGB和SWIR?
  • [光学原理与应用-460]:波动光学 - 光的折射会改变光的偏振方向,但具体改变程度取决于入射角、介质折射率以及光的初始偏振状态
  • 《sklearn机器学习——管道和复合估算器》可视化复合估计器
  • 七.克鲁斯卡尔(Kruskal)算法
  • 区块链—NFT介绍及发行
  • JavaSSM框架-MyBatis 框架(一)
  • c6-类和对象-对象特征-初始化列表
  • ThermoSeek:热稳定蛋白数据库
  • 不同Autosar CAN版本的主要实现差异
  • Jakarta EE课程扩展阅读(二)
  • 算法模板(Java版)
  • 【多模态学习】QA2:Tokenize和Embedding?BPE算法?交叉熵损失函数?
  • ViT学习
  • 【Java实战㉚】深入MyBatis:从动态SQL到缓存机制的进阶之旅
  • 腾讯云EdgeOne免费套餐:零成本开启网站加速与安全防护