torch中向量 矩陣乘法大總結

2021-10-11 19:16:34 字數 2156 閱讀 7238

如下**可以在我的github庫中找到。

點乘:就是向量的各個元素對應相乘。

比如現在我們有兩個向量,a=[2,3], b=[-1,3],則其點乘結果是:7。可以有兩種方法來計算:

給定兩個向量 x,y

∈rdx,y∈r^d

x,y∈rd

,它們的點積(dotproduct) x⊤y

x^⊤y

x⊤y (或 ⟨x,y⟩ )是相同位置的按元素乘積的和: x⊤y

=∑i=

1dxi

yix^⊤y=∑^d_x_iy_i

x⊤y=∑i

=1d​

xi​y

i​。注意:這裡的點乘並不是我們普通理解的那個向量乘法。【我有點兒疑惑了,這裡不就是向量乘法嗎?】

a = t.tensor([2

,3])

b = t.tensor([-

1,3]

)print

(t.dot(a,b)

)

執行結果:

tensor(7)

mm方法適用於矩陣的乘法。我們可以將乙個向量看作是乙個簡單的1*m的矩陣,然後執行操作即可。**如下:

"""2.使用tensor中的mm方法做向量乘法

01.mm 計算矩陣的乘法

02.這裡是將向量轉為乙個矩陣,然後做乘法。實現dot做點乘的效果

"""# a = t.tensor([1,2]) 這樣並不是乙個矩陣!!!只是乙個類似list的tensor

a = t.tensor([[

1,2]

])# 是乙個矩陣

b = t.tensor([[

2,3]

])# 是乙個矩陣

b = t.transpose(b,0,

1)# 轉置後才有和a進行運算

print

(a.shape,b.shape)

print

(t.mm(a,b)

)

執行結果如下:

兩個tensor的矩陣乘積。乘積的結果視tensor的維度而定:

執行結果:

tensor([0.0120, 0.1280])

如下圖所示:a,b是兩個不同維度的矩陣,直接使用*號後便做乙個廣播乘法,得到結果。右側給出了計算過程。

這裡的廣播原則是:直接將低維的a(2,3,1) 變化成了(2,3,8)。然後與b按元素相乘。等到最後的結果。

Numpy 中的矩陣向量乘法

元素乘法 np.multiply a,b 矩陣乘法 np.dot a,b 或 np.matmul a,b 或 a.dot b 唯獨注意 在 np.array 中過載為元素乘法,在 np.matrix 中過載為矩陣乘法 對於np.array物件 a array 1,2 3,4 array中對應元素乘法...

numpy 向量 矩陣的乘法

import numpy as np一維向量與一維向量 一維向量與一維向量 vec1 np.array 1 2,3 vec2 np.array 4 5,6 np.inner 對應位置的元素相乘相加求和 res inner1 np.inner vec1,vec2 32 對應位置的元素相乘 成為新矩陣該...

向量 矩陣的幾種乘法

向量與向量的點乘是逐個元素相乘後求和。矩陣與矩陣的點乘就是矩陣乘法。在 python 中可使用 numpy.dot 或 實現。方陣還可採用numpy.matmul。example import numpy as np a np.array 1 1,1 b np.array 1 2,3 a np.ar...