mindspore.ops.BatchMatMul
- class mindspore.ops.BatchMatMul(transpose_a=False, transpose_b=False)[source]
Computes matrix multiplication between two tensors by batch.
text{output}[…, :, :] = text{matrix}(x[…, :, :]) * text{matrix}(y[…, :, :])
The rank of the two input tensors must be at least 2, and the two input tensors must have the same rank if the environment is GPU or CPU.
- Parameters
- Inputs:
x (Tensor) - The first tensor to be multiplied. The shape of the tensor is
, where represents the batch size which can be multidimensional, and are the size of the last two dimensions. If transpose_a isTrue
, its shape must be .y (Tensor) - The second tensor to be multiplied. The shape of the tensor is
. If transpose_b isTrue
, its shape must be .
- Outputs:
Tensor, the shape of the output tensor is
.
- Raises
TypeError – If transpose_a or transpose_b is not a bool.
ValueError – If length of shape of x is not equal to length of shape of y or length of shape of inputs is less than 2.
- Supported Platforms:
Ascend
GPU
CPU
Examples
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> x = Tensor(np.ones(shape=[2, 4, 1, 3]), mindspore.float32) >>> y = Tensor(np.ones(shape=[2, 4, 3, 4]), mindspore.float32) >>> batmatmul = ops.BatchMatMul() >>> output = batmatmul(x, y) >>> print(output.shape) (2, 4, 1, 4) >>> x = Tensor(np.ones(shape=[2, 4, 3, 1]), mindspore.float32) >>> y = Tensor(np.ones(shape=[2, 4, 3, 4]), mindspore.float32) >>> batmatmul = ops.BatchMatMul(transpose_a=True) >>> output = batmatmul(x, y) >>> print(output.shape) (2, 4, 1, 4)