1. 程式人生 > 程式設計 >基於python及pytorch中乘法的使用詳解

基於python及pytorch中乘法的使用詳解

numpy中的乘法

A = np.array([[1,2,3],[2,3,4]])
B = np.array([[1,1],1,-1]])
C = np.array([[1,0],[0,[-1,0]])
 
A * B : # 對應位置相乘
np.array([[ 1,[ 4,-4]]) 
 
A.dot(B) :  # 矩陣乘法 
ValueError: shapes (2,3) and (2,3) not aligned: 3 (dim 1) != 2 (dim 0)
 
A.dot(C) : # 矩陣乘法  | < -- > np.dot(A,C)
np.array([[-2,2],[-2,3]])

總結 : 在numpy中,*表示為兩個陣列對應位置相乘; dot表示兩個陣列進行矩陣乘法

pytorch中的乘法

A = torch.tensor([[1,4]])
B = torch.tensor([[1,-1]])
C = torch.tensor([[1,0]])
 
# 矩陣乘法
torch.mm(mat1,mat2,out=None) <--> torch.matmul(mat1,out=None)
eg : 
  torch.mm(A,B)   : RuntimeError: size mismatch,m1: [2 x 3],m2: [2 x 3]
  torch.mm(A,C)   : tensor([[-2,3]])
  torch.matmul(A,C) : tensor([[-2,3]])
 
# 點乘
torch.mul(mat1,out=None)
 
eg :
  torch.mul(A,B) : tensor([[ 1,-4]])
  torch.mul(A,C) : RuntimeError: The size of tensor a (3) must match the size of tensor b (2) at non-singleton dimension 1

總結 : 在pytorch中,mul表示為兩個陣列對應位置相乘; mm和matmul表示兩個陣列進行矩陣乘法

以上這篇基於python及pytorch中乘法的使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。