pytorch中torch.einsum函数的详细计算过程图解

第一次见到 rel_h = torch.einsum("bhwc,hkc->bhwk", r_q, Rh)这行代码时,属实是懵了,网上找了很多博主的介绍,但都没有详细的说明函数内部的计算过程,看得我是一头雾水,只知道计算结果的维度是如何变化的,却不明白函数内部是如何计算的。话不多说,直接上示例代码

示例代码

python 复制代码
import torch
r_q = torch.tensor([[[[1, 2, 3, 4, 5],
                      [6, 7, 8, 9, 10],
                      [11, 12, 13, 14, 15],
                      [16, 17, 18, 19, 20]],
                     [[21, 22, 23, 24, 25],
                      [26, 27, 28, 29, 30],
                      [31, 32, 33, 34, 35],
                      [36, 37, 38, 39, 40]],
                     [[41, 42, 43, 44, 45],
                      [46, 47, 48, 49, 50],
                      [51, 52, 53, 54, 55],
                      [56, 57, 58, 59, 60]]]])

Rh = torch.tensor([[[1, 2, 3, 4, 5,],
                      [7, 8, 9, 10, 11, ],
                      [13, 14, 15, 16, 17, ],
                      [19, 20, 21, 22, 23, ],
                        [1, 2, 3, 4, 5,],
                    [1, 2, 3, 4, 5,],],
                     [[25, 26, 27, 28, 29, ],
                      [31, 32, 33, 34, 35, ],
                      [37, 38, 39, 40, 41, ],
                      [43, 44, 45, 46, 47, ],
                      [1, 2, 3, 4, 5,],
                      [1, 2, 3, 4, 5,],],
                     [[49, 50, 51, 52, 53, ],
                      [55, 56, 57, 58, 59, ],
                      [61, 62, 63, 64, 65, ],
                      [67, 68, 69, 70, 71, ],
                      [1, 2, 3, 4, 5,],
                      [1, 2, 3, 4, 5,],]])

rel_h = torch.einsum("bhwc,hkc->bhwk", r_q, Rh)
print(rel_h)

输出结果:

结果解释

文字很难解释清楚,直接上图。r_q的维度为(1, 3, 4, 5), Rh的维度为(3, 6, 5),函数torch.einsum("bhwc,hkc->bhwk", r_q, Rh)中b=1, h=3, w=4, c=5。所以最终结果Rel_h的维度为bhwk,即(1, 3, 4, 5)。具体计算过程如下图。

这回看懂了吧。还不理解的或者讲的不对的地方,欢迎在评论区留言。创作不易,喜欢的话点个关注吧

相关推荐
玩转单片机与嵌入式2 分钟前
玩转边缘AI(TInyML):需要掌握的C++知识汇总!
开发语言·c++·人工智能
Rubin智造社7 分钟前
2026年热门AI工具汇总|8大类别全覆盖,办公/创作/编程一键解锁
人工智能·ai作画·aigc·ai工具
feasibility.8 分钟前
SpaceMind论文解读:太空具身智能的范式跃迁 —— 中科院发布首个自进化太空机器人智能体框架
人工智能·科技·机器人·具身智能·skills·太空·进化
β添砖java13 分钟前
深度学习(19)经典神经网络LeNet
人工智能·深度学习·神经网络
梦想画家29 分钟前
Apache AGE实战指南:从Cypher语法到核心图算法
算法·cypher·apache age
AI小技巧30 分钟前
告别学习工具成瘾,这些管控平台超神!
人工智能·机器学习
刀法如飞1 小时前
Go数组去重的20种实现方式,AI时代解决问题的不同思路
后端·算法·go
野生的程序媛1 小时前
关于我做了一个玩偶姐姐桌宠
人工智能·深度学习·神经网络·机器学习·chatgpt·ai作画·gpt-3
AI周红伟1 小时前
周红伟:运营商一季度净利集体下滑 Token运营提速
大数据·网络·人工智能
__Wedream__1 小时前
NTIRE 2026 Challenge on Remote Sensing Infrared Image Super-Resolution冠军方案解读
深度学习·cvpr·超分辨率重建·ntire·图像复原和增强