參考文章
numpy中的一維的卷積
np.convolve([1,2,3,4],[1,1,3],'full') 
n m
a(被卷積函數) v(內核)
----------------------------------full-------------------------------------
full模式下
step1:1 2 3 4 a[n]*v[0]
step2 : 1 2 3 4 a[n]*v[1]
step3 : 3 6 9 12 a[n]*v[2]
得出卷積的結果是 1 3 8 13 13 12 結果個數是 n+m-1
----------------------------------valid-------------------------------------
valid模式下 數學計算方法
=將 v偏轉180度,變成[3,1,1]* [1] [3,1,1]* [2]
[2] [3]
[3] [4]
= [8,13]
若是按照實際意義,就是取
徹底重合的狀況
--------------------------------same-----------------------------------------
same模式下 數學計算方法 ,a先後各補一個0,卷積四次
=將 v偏轉180度,變成[3,1,1]* [0] [3,1,1]* [1] [3,1,1]* [2] [3,1,1]* [3]
[1] [2] [3] [4]
[2] [3] [4] [0]
= [3,8,13,13]
若是按照實際意義,就是取
有重合的狀況
多維的狀況相似,對v和a進行,以下變換
卷積過程先將卷積核v旋轉180°,被卷積矩陣a擴展到(m+n)*(m+n)大小,將擴展部分用0代替,其序號用負數代替;