这个函数没有广播机制 如果要使用广播机制 需要torch.matmul()
支持strided和稀疏的二维张量作为输入 autograd with respect to strided inputs.
该操作符支持TensorFloat32。
mat1 torch.randn(2, 3) mat2 torch.randn(3, 3) torch.mm(mat1, mat2) tensor([[ 0.4851, 0.5037, -0.3633], [-0.0760, -3.6705, 2.4784]])
input是第一个张量矩阵 mat2是第二个张量矩阵。output是张量
Torch.matmultorch.matmul(input, other, ***, out None) → Tensor
两个张量的矩阵乘积。
其行为取决于张量的维数如下:
如果两个张量都是一维的 则返回点积(标量)。
如果两个参数都是二维的 则返回矩阵-矩阵乘积。
如果第一个参数是一维的 第二个参数是二维的 为了使矩阵相乘 在它的维数前面加了一个1。在矩阵相乘之后 附加的维度被删除。
如果第一个参数是二维的 第二个参数是一维的 则返回矩阵-向量乘积。
如果两个参数至少是一维的 且至少一个参数是N维的(其中N 2) 则返回一个批处理矩阵乘法。如果第一个参数是一维的 则在其维数前加上1 以便批处理矩阵相乘 然后删除。如果第二个参数是一维的 则为批处理矩阵倍数的目的 将在其维上追加一个1 然后删除它。
非矩阵(即批处理)维度是广播的(因此必须是可广播的)。
示例 如果input是



