mindspore.ops.bmm

mindspore.ops.bmm(input_x, mat2)[source]

Computes matrix multiplication between two tensors by batch.

\[\text{output}[..., :, :] = \text{matrix}(input_x[..., :, :]) * \text{matrix}(mat2[..., :, :])\]

The dim of input_x can not be less than 3 and the dim of mat2 can not be less than 2.

Parameters
  • input_x (Tensor) – The first tensor to be multiplied. The shape of the tensor is \((*B, N, C)\), where \(*B\) represents the batch size which can be multidimensional, \(N\) and \(C\) are the size of the last two dimensions.

  • mat2 (Tensor) – The second tensor to be multiplied. The shape of the tensor is \((*B, C, M)\).

Returns

Tensor, the shape of the output tensor is \((*B, N, M)\).

Raises
  • ValueError – If dim of input_x is less than 3 or dim of mat2 is less than 2.

  • ValueError – If the length of the third dim of input_x is not equal to the length of the second dim of mat2.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import mindspore as ms
>>> from mindspore import Tensor, ops
>>> import numpy as np
>>> input_x = Tensor(np.arange(24).reshape((2, 4, 1, 3)), ms.float32)
>>> mat2 = Tensor(np.arange(72).reshape((2, 4, 3, 3)), ms.float32)
>>> output = ops.bmm(input_x, mat2)
>>> print(output)
[[[[  15.   18.   21.]]
  [[ 150.  162.  174.]]
  [[ 447.  468.  489.]]
  [[ 906.  936.  966.]]]
 [[[1527. 1566. 1605.]]
  [[2310. 2358. 2406.]]
  [[3255. 3312. 3369.]]
  [[4362. 4428. 4494.]]]]