pytorch matmul 高维乘法 解读

本文详细介绍了在二维以上维度中,如何使用PyTorch库进行张量(tensor)的matmul运算。以(2,3,2)和(2,2,2)张量为例,解释了当第一维相同时,如何按位置进行矩阵乘法。并讨论了第一维不同时的两种特殊情况:1) 一维为1时,张量的内部矩阵与另一张量的矩阵逐个相乘;2) 两维均不为1时导致的错误。通过实例展示了张量乘法的实现和结果解析,帮助理解高维张量操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二维情况下两个tensor matmul就是矩阵乘法,但是当高维的情况呢?

构建(2,3,2)tensor 和 (2,2,2)tensor 进行相乘

>>> d
tensor([[[ 0.,  1.],
         [ 2.,  3.],
         [ 4.,  5.]],

        [[ 6.,  7.],
         [ 8.,  9.],
         [10., 11.]]])


>>> e
tensor([[[0., 1.],
         [2., 3.]],

        [[4., 5.],
         [6., 7.]]])


>>> f=torch.matmul(d,e)
>>> f
tensor([[[  2.,   3.],
         [  6.,  11.],
         [ 10.,  19.]],

        [[ 66.,  79.],
         [ 86., 103.],
         [106., 127.]]])

 在第一维上,两个tensor对应位置的矩阵相乘。

这是两个tensor第一维相同的情况,如果第一维不相同的话,分成两种情况

1.两个tensor 有某个tensor第一维为1,那么就是用这个tensor的里面的后两维组成的矩阵和另外一个tensor的第一维里面的两个矩阵分别相乘

2.两个tensor里面没有某个tensor 第一维为1,出错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值