如下**可以在我的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
xiy
i。注意:這裡的點乘並不是我們普通理解的那個向量乘法。【我有點兒疑惑了,這裡不就是向量乘法嗎?】
執行結果:a = t.tensor([2
,3])
b = t.tensor([-
1,3]
(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進行運算
(a.shape,b.shape)
(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...