torch.matmul是tensor的乘法,输入可以是高维的。
当输入都是二维时,就是普通的矩阵乘法,和tensor.mm函数用法相同。
在这里插入图片描述

当输入有多维时,把多出的一维作为batch提出来,其他部分做矩阵乘法。
在这里插入图片描述
下面看一个两个都是3维的例子。
在这里插入图片描述
将b的第0维1broadcast成2提出来,后两维做矩阵乘法即可。
再看一个复杂一点的,是官网的例子。
在这里插入图片描述
首先把a的第0维2作为batch提出来,则a和b都可看作三维。再把a的1broadcast成5,提取公因式5。(这样说虽然不严谨,但是便于理解。)然后a剩下(3,4),b剩下(4,2),做矩阵乘法得到(3,2)。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐