mindspore.ops.MatMul

class mindspore.ops.MatMul(*args, **kwargs)[source]

Multiplies matrix a and matrix b.

The rank of input tensors must equal to 2.

Parameters
  • transpose_a (bool) – If true, a is transposed before multiplication. Default: False.

  • transpose_b (bool) – If true, b is transposed before multiplication. Default: False.

Inputs:
  • input_x (Tensor) - The first tensor to be multiplied. The shape of the tensor is \((N, C)\). If transpose_a is True, its shape must be \((N, C)\) after transpose.

  • input_y (Tensor) - The second tensor to be multiplied. The shape of the tensor is \((C, M)\). If transpose_b is True, its shape must be \((C, M)\) after transpose.

Outputs:

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

Raises
  • TypeError – If transpose_a or transpose_b is not a bool.

  • ValueError – If the column of matrix dimensions of input_x is not equal to the row of matrix dimensions of input_y.

  • ValueError – If length of shape of input_x or input_y is not equal to 2.

Supported Platforms:

Ascend GPU CPU

Examples

>>> input_x1 = Tensor(np.ones(shape=[1, 3]), mindspore.float32)
>>> input_x2 = Tensor(np.ones(shape=[3, 4]), mindspore.float32)
>>> matmul = ops.MatMul()
>>> output = matmul(input_x1, input_x2)
>>> print(output)
[[3. 3. 3. 3.]]
check_shape_size(x1, x2)[source]

Check the shape size of inputs for MatMul.