在之前的文章中(卷積神經(jīng)網(wǎng)絡(luò)中為什么會有矩陣乘法?),我們提到的情形是只有一個通道的輸入數(shù)據(jù),相應(yīng)的,也就只有一個與之對應(yīng)的Kernel。如果是多通道輸入數(shù)據(jù),是否依然存在矩陣乘法呢?我們看下面的例子。
在這個例子中,有3個輸入通道(RGB),每個通道有與之對應(yīng)的Kernel,此時的卷積運(yùn)算并沒有本質(zhì)的變化,就每個通道而言,仍然是二維濾波器。將每個通道的輸出結(jié)果對應(yīng)元素相加即為多通道情形下的卷積結(jié)果。這里可以設(shè)置偏置(Bias)。圖中的偏置值為1。此時,輸入為多通道,輸出為單通道。
進(jìn)一步擴(kuò)展,如果每個通道有多個與之對應(yīng)的Kernel,會是什么情形呢?如下圖所示。圖中,每個通道有4個Kernel。從而,最終輸出有4個通道。輸出每個通道的計算方式與上圖保持一致。
基于以上兩圖,我們不難得出如下結(jié)論:
輸入通道與Kernel通道保持一致,例如上圖中有3個輸入通道和3個Kernel通道。
輸出通道個數(shù)與每個Kernel通道內(nèi)的濾波器個數(shù)一致,例如上圖中每個Kernel通道內(nèi)有4個濾波器,故輸出通道個數(shù)為4。
每個輸出通道所包含的元素個數(shù)與滑窗個數(shù)一致。這再次證明多通道本質(zhì)上與單通道的卷積運(yùn)算是一致的。
現(xiàn)在,我們對輸入通道數(shù)據(jù)進(jìn)行重組,如下圖所示方式。取出每個通道滑窗內(nèi)的數(shù)據(jù),排成一列,最終構(gòu)成一個矩陣。
緊接著,將每個通道對應(yīng)的Kernel也進(jìn)行重組,如下圖所示方式。最終形成Kernel矩陣。與輸入通道數(shù)據(jù)重組不同的是這里將Kernel系數(shù)按行排列,每個Kernel通道內(nèi)濾波器的個數(shù)決定了行數(shù)。
至此,輸入數(shù)據(jù)和Kernel系數(shù)都被重組為矩陣,重組的目的就是為了滿足矩陣運(yùn)算的需求,這樣就可以按照矩陣乘法計算卷積運(yùn)算了。
責(zé)任編輯:lq
-
濾波器
+關(guān)注
關(guān)注
162文章
8283瀏覽量
184474 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4822瀏覽量
106474 -
矩陣
+關(guān)注
關(guān)注
1文章
440瀏覽量
35758
原文標(biāo)題:再談卷積神經(jīng)網(wǎng)絡(luò)中為什么會有矩陣乘法
文章出處:【微信號:Lauren_FPGA,微信公眾號:FPGA技術(shù)驛站】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
E203的乘法和除法這種多周期指令是怎么解決數(shù)據(jù)相關(guān)性的?
STM32多通道FFT運(yùn)算異常的原因?怎么解決?

如果是多通道輸入數(shù)據(jù),是否依然存在矩陣乘法呢?
評論