np.dot与np.matmul的区别

本文主要介绍了pytorch中matmul、mm和bmm的区别。mm只能进行矩阵乘法,输入维度为(n×m)和(m×p);bmm是两个三维张量相乘,维度为(b×m×p) 和(b×n×p);matmul可进行张量乘法,输入可为高维。还对torch.matmul文档中批量矩阵乘法要点进行了解答。

1.二者都是矩阵乘法。
2.np.matmul中禁止矩阵与标量的乘法。
3.在矢量乘矢量的內积运算中,np.matmul与np.dot没有区别。
4.np.matmul中,多维的矩阵,将前n-2维视为后2维的元素后,进行乘法运算。

 

pytorch中matmul和mm和bmm区别

matmul

å¨è¿éæå¥å¾çæè¿°
mm

å¨è¿éæå¥å¾çæè¿°
bmm

顾名思义, 就是两个batch矩阵乘法.

å¨è¿éæå¥å¾çæè¿°
结论

从官方文档可以看出,

mm只能进行矩阵乘法,也就是输入的两个tensor维度只能是(n×m)和(m×p) 
bmm是两个三维张量相乘, 两个tensor维度是(b×m×p) 和(b×n×p) , 第一维b代表batch_size
matmul可以进行张量乘法, 输入可以是高维.

--------------------- 

扩展,什么意思呢:

Q:关于torch.matmul文档中批量矩阵乘法的要点提到了以下语句:
“非矩阵(即批量)维度被广播(因此必须是可广播的)。例如,如果tensor1是(j×1 ×n×m)张量和张量2是(k×m×p)张量,out是(j×k×n×p)张量。“

在本声明中,我不清楚如何识别非矩阵维度。例如,如果我有两个大小分别为(1000,500,100,10)和(500,10,50)的矩阵A和B. 在这种情况下,矩阵的维数乘以什么?批次中将进行多少次乘法?

A:嗨,

矩阵乘法总是使用最后两个维度完成。之前的所有内容都被视为批量。
在您的情况下,矩阵乘法的大小为100x10和10x50。批量维度为1000x500和500,因此将广播到1000x500。因此最终输出的大小为1000x500x100x50。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值