megengine.functional.matmul¶
- matmul(inp1, inp2, transpose_a=False, transpose_b=False, compute_mode='default', format='default')[源代码]¶
对矩阵
inp1
和inp2
进行矩阵乘法。当输入的dim不同时,执行的函数是不同的:
都是1维张量,此时等价于点积运算。
都是2维张量,此时是普通的矩阵乘法。
如果其中一个输入张量是1维的,此时是一个矩阵和一个向量相乘。
If at least one tensor are 3-dimensional or >3-dimensional, the other tensor should have dim >= 2, the batched matrix-matrix is returned, and the tensor with smaller dimension will be broadcasted. For example:
inp1: (n, k, m), inp2: (n, m, p), 返回: (n, k, p)
inp1: (n, k, m), inp2: (m, p), 返回: (n, k, p)
inp1: (n, j, k, m), inp2: (n, j, m, p), 返回: (n, j, k, p)
实际案例
import numpy as np from megengine import tensor import megengine.functional as F data1 = tensor(np.arange(0, 6, dtype=np.float32).reshape(2, 3)) data2 = tensor(np.arange(0, 6, dtype=np.float32).reshape(3, 2)) out = F.matmul(data1, data2) print(out.numpy())
输出:
[[10. 13.] [28. 40.]]