1. 点积(dot product), 同名内积(inner product)
np.dot(a,b) 或者 a.dot(b)
2. 点乘 np.multiply 或者 *
标量乘法,两个数组对应位置进行相乘,结果shape与参与运算的数组shape一致。参与运算的两个数据的shape一致
3. 矩阵乘法 np.matmul 或者 @
两个运算的矩阵需要满足矩阵乘法的规则(前一个矩阵的列与后一个矩阵的行相匹配)。
Test one
输入向量
输出结果
Test two
输入矩阵
输出结果
总结:
1, 在矢量相乘的内积运算中,np.matmul 和 np.dot 运算没有区别
2,np.matmul中禁止矩阵与标量的乘法。
3,np.dot 一般用作向量的内积运算, np.matmul 一般用作矩阵乘法运算
4,np.multiply 一般用作标量的乘法运算
点乘都是broadcast的,可以用torch.mul(a, b)实现,也可以直接用*实现。
矩阵相乘有torch.mm和torch.matmul两个函数。其中前一个是针对二维矩阵,后一个是高维。当torch.mm用于大于二维时将报错。