在之前的文章中(卷積神經網絡中為什么會有矩陣乘法?),我們提到的情形是只有一個通道的輸入數據,相應的,也就只有一個與之對應的Kernel。如果是多通道輸入數據,是否依然存在矩陣乘法呢?我們看下面的例子。
在這個例子中,有3個輸入通道(RGB),每個通道有與之對應的Kernel,此時的卷積運算并沒有本質的變化,就每個通道而言,仍然是二維濾波器。將每個通道的輸出結果對應元素相加即為多通道情形下的卷積結果。這里可以設置偏置(Bias)。圖中的偏置值為1。此時,輸入為多通道,輸出為單通道。
進一步擴展,如果每個通道有多個與之對應的Kernel,會是什么情形呢?如下圖所示。圖中,每個通道有4個Kernel。從而,最終輸出有4個通道。輸出每個通道的計算方式與上圖保持一致。
基于以上兩圖,我們不難得出如下結論:
輸入通道與Kernel通道保持一致,例如上圖中有3個輸入通道和3個Kernel通道。
輸出通道個數與每個Kernel通道內的濾波器個數一致,例如上圖中每個Kernel通道內有4個濾波器,故輸出通道個數為4。
每個輸出通道所包含的元素個數與滑窗個數一致。這再次證明多通道本質上與單通道的卷積運算是一致的。
現在,我們對輸入通道數據進行重組,如下圖所示方式。取出每個通道滑窗內的數據,排成一列,最終構成一個矩陣。
緊接著,將每個通道對應的Kernel也進行重組,如下圖所示方式。最終形成Kernel矩陣。與輸入通道數據重組不同的是這里將Kernel系數按行排列,每個Kernel通道內濾波器的個數決定了行數。
至此,輸入數據和Kernel系數都被重組為矩陣,重組的目的就是為了滿足矩陣運算的需求,這樣就可以按照矩陣乘法計算卷積運算了。
責任編輯:lq
-
濾波器
+關注
關注
161文章
7795瀏覽量
177996 -
神經網絡
+關注
關注
42文章
4771瀏覽量
100714 -
矩陣
+關注
關注
0文章
423瀏覽量
34528
原文標題:再談卷積神經網絡中為什么會有矩陣乘法
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術驛站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論