评价此页

torch.bmm#

torch.bmm(input, mat2, out_dtype=None, *, out=None) Tensor#

对存储在 inputmat2 中的矩阵进行批处理矩阵-矩阵乘积。

inputmat2 必须是 3 维张量,每个张量包含相同数量的矩阵。

如果 input 是一个 (b×n×m)(b \times n \times m) 张量,mat2 是一个 (b×m×p)(b \times m \times p) 张量,则 out 将是一个 (b×n×p)(b \times n \times p) 张量。

outi=inputi@mat2i\text{out}_i = \text{input}_i \mathbin{@} \text{mat2}_i

此操作符支持TensorFloat32

在某些 ROCm 设备上,当使用 float16 输入时,此模块将对反向传播使用不同精度

注意

此函数不执行 广播。有关广播矩阵乘积,请参阅 torch.matmul()

参数
  • input (Tensor) – 要相乘的第一个矩阵批次

  • mat2 (Tensor) – 要相乘的第二个矩阵批次

  • out_dtype (dtype, optional) – 输出张量的数据类型。仅在 CUDA 上支持,并且当输入数据类型为 torch.float16/torch.bfloat16 时,支持 torch.float32。

关键字参数

out (Tensor, optional) – 输出张量。

示例

>>> input = torch.randn(10, 3, 4)
>>> mat2 = torch.randn(10, 4, 5)
>>> res = torch.bmm(input, mat2)
>>> res.size()
torch.Size([10, 3, 5])