mindspore.ops.MatMul

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

Multiplies matrix x and matrix y.

\[(Output)_{i j}=\sum_{k=1}^{p} a_{i k} b_{k j}=a_{i 1} b_{1 j}+a_{i 2} b_{2 j}+\cdots+a_{i p} b_{p j}, p\in N\]

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.