CNN的卷积运算为何使用互相关而不是卷积
生活随笔
收集整理的這篇文章主要介紹了
CNN的卷积运算为何使用互相关而不是卷积
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CNN的卷積運算并非數學定義的卷積
也就是說,CNN中的運算是不需要翻轉卷積核的。
也就是說,CNN在處理圖像時的卷積核是不需要翻轉180°的
我們來用代碼看下為什么?
運行結果為:
---------卷積結果---------------------
[[0.00e+00 3.00e+00 3.00e-01]
[6.00e+00 3.06e+01 3.00e+02]
[6.00e+01 6.00e+02 0.00e+00]]
---------互相關結果---------------------
[[ 0. 300. 30. ]
[600. 60.3 3. ]
[ 0.6 6. 0. ]]
因為卷積層后面連接的是池化層,
也就是說把卷積結果得到的矩陣中,
選取矩陣中數值最大的元素作為保留,矩陣中其余元素一律刪除。
所以我們可以看到:
上述代碼的
卷積結果中的最大值
與
互相關結果矩陣中的最大值
都是600
因此后面maxpooling層進行池化后得到的值也都是600.
如果后面接全連接層,那么
上面兩個矩陣全部flatten以后輸入dense層,幾乎完全一致,也不影響建模
結論:
CNN中使用卷積或互相關,對于
的貢獻是一致的,都是獲取像素最大的那個值,
因此可以使用卷積,也可以使用互相關,
但是為了代碼的高效,直接使用“互相關”即可。
總結
以上是生活随笔為你收集整理的CNN的卷积运算为何使用互相关而不是卷积的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CNN中的权重维度解析以及卷积核中的数值
- 下一篇: RHEL7出现tkinter.TclEr