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

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐