python乘法,np.dot, np.multiply, np.matmul / torch.mul, torch.mm, torch.matml,

1. 点积(dot product), 同名内积(inner product) 

python乘法,np.dot, np.multiply, np.matmul / torch.mul, torch.mm, torch.matml,_第1张图片

 np.dot(a,b)  或者 a.dot(b)

2. 点乘 np.multiply  或者 *

标量乘法,两个数组对应位置进行相乘,结果shape与参与运算的数组shape一致。参与运算的两个数据的shape一致

3. 矩阵乘法  np.matmul  或者 @

两个运算的矩阵需要满足矩阵乘法的规则(前一个矩阵的列与后一个矩阵的行相匹配)。

Test one

输入向量

 python乘法,np.dot, np.multiply, np.matmul / torch.mul, torch.mm, torch.matml,_第2张图片

输出结果

 

 Test two

输入矩阵

python乘法,np.dot, np.multiply, np.matmul / torch.mul, torch.mm, torch.matml,_第3张图片

 输出结果

python乘法,np.dot, np.multiply, np.matmul / torch.mul, torch.mm, torch.matml,_第4张图片

总结: 

1, 在矢量相乘的内积运算中,np.matmul 和 np.dot 运算没有区别

2,np.matmul中禁止矩阵与标量的乘法。

3,np.dot 一般用作向量的内积运算, np.matmul 一般用作矩阵乘法运算

4,np.multiply 一般用作标量的乘法运算

点乘都是broadcast的,可以用torch.mul(a, b)实现,也可以直接用*实现。

矩阵相乘有torch.mmtorch.matmul两个函数。其中前一个是针对二维矩阵,后一个是高维。当torch.mm用于大于二维时将报错。

你可能感兴趣的:(python语法,python,机器学习,线性代数)