mindspore.ops.MatMul

class mindspore.ops.MatMul(transpose_a=False, transpose_b=False)[source]

Multiplies matrix x and matrix y.

(Output)ij=k=1paikbkj=ai1b1j+ai2b2j++aipbpj,pN

where the i,j indicates the output of the i-th row and j-th column element.

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

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

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

  • y (Tensor) - The second tensor to be multiplied. The shape of the tensor is (C,M). If transpose_y 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 x is not equal to the row of matrix dimensions of y.

  • ValueError – If length of shape of x or y is not equal to 2.

Supported Platforms:

Ascend GPU CPU

Examples

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

Check the shape size of inputs for MatMul.