chainer.functions.matmul(a, b, transa=False, transb=False)[source]

Computes the matrix multiplication of two arrays.

  • a (Variable or N-dimensional array) – The left operand of the matrix multiplication. If a and b are both 1-D arrays, matmul returns a dot product of vector a and vector b. If 2-D arrays, matmul returns matrix product of a and b. If either’s dimension is larger than 2, they are treated as a stack of matrices residing in the last two indexes. matmul returns a stack of each two arrays. In this case, a and b are broadcasted along axes except the last two.
  • b (Variable or N-dimensional array) – The right operand of the matrix multiplication. Its array is treated as a matrix in the same way as a’s array.
  • transa (bool) – If True, each matrices in a will be transposed. If a.ndim == 1, do nothing.
  • transb (bool) – If True, each matrices in b will be transposed. If b.ndim == 1, do nothing.

The result of the matrix multiplication.

Return type:



>>> a = np.array([[1, 0], [0, 1]], np.float32)
>>> b = np.array([[4, 1], [2, 2]], np.float32)
>>> F.matmul(a, b).data
array([[4., 1.],
       [2., 2.]], dtype=float32)