# chainer.functions.matmul¶

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

Computes the matrix multiplication of two arrays.

Parameters: a (Variable) – 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) – 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. Variable

Example

>>> 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)