目標檢測之numpy——向量和矩陣乘法相關

numpy中表示向量和矩陣乘法的有四種"*"、outer、dot、multiply。

1、關於 "*" 的用法

"*" 也為對於元素的乘積,但是 "*" 作為乘法運算時,必須滿足 numpy 的 broadcasting(廣播) 的原則 ,當兩個矩陣相乘時,其法則為兩矩陣的對應的元素相乘,其用法與multiply相同。感覺“*”很雞肋,還不如直接用dot或multiply。實例如圖所示。

深度學習/目標檢測之numpy——向量和矩陣乘法相關

2、關於 outer 的用法

numpy.outer(a, b, out=None): 計算兩個向量的外積。假設向量 a = [a0, a1, ... , aM], b = [b0, b1, ..., bN], 則 a*b =[[a0*b0, a0*b1, ... ,a0*bM], [a1*b0, a1*b1, ... , a1*bN], .... , [aM*b0, aM*b1, ... , aM*bN]]; 注意:若 a,b 不為一維數組,則先將其變成一維數組,即可得 a(M,)和 b(N,) 這種形式。也就是說outer只適用於一維數組的計算。實例如圖所示。

深度學習/目標檢測之numpy——向量和矩陣乘法相關

3、關於 dot 的用法

對於一維數組,則是各元素的乘積;對於二維數組,它相當於矩陣的乘法。實例如下。

深度學習/目標檢測之numpy——向量和矩陣乘法相關

4、關於 multiply 的用法

為矩陣的相應元素的乘積,值得注意的是,multiply的兩組元素的shape必須一致。實例如下。

深度學習/目標檢測之numpy——向量和矩陣乘法相關


分享到:


相關文章: