2016-03-06 98 views
0

我想在Caffe中複製卷積的輸出。爲什麼這個卷積的輸出具有這些尺寸?

據我所知,Caffe使用im2col算法將nD數組轉換爲矩陣並將它們相乘。然而,Caffe中輸出的尺寸讓我感到困惑。

使用ImageData圖層,我輸入尺寸爲150x149的4個圖像,批量大小爲4。Caffe創建尺寸爲4x3x149x150的4D陣列。

我將這些卷積層與一個大小爲7,步幅爲1的濾波器進行卷積(num_output = 1 & bias =零向量)。這意味着權重的尺寸爲1x3x7x7。據我所知,如果步幅爲1,則應該將濾波器應用於每個元素,並且輸出應該與輸入具有相同的尺寸。但是,我得到的是以下維度的輸出:4x1x143x144。

我不明白這是可能的。如何在Matlab中執行相同的操作(或其他)?

您如何從輸入獲得輸出?

回答

1

你的卷積濾波器具有寬度7. 1D在其尋找,它的第一個應用將是到像素

1, 2, 3, 4, 5, 6, 7, 

第二個向像素

2, 3, 4, 5, 6, 7, 8, 

,以此類推,直到最後一個,它對像素進行操作

143, 144, 145, 146, 147, 148, 149. 

因此,正如你所看到的那樣,濾波器有143種不同的應用,每種應用都產生一個輸出像素。因此,輸出尺寸爲143.其類似於其他座標方向。

總之,對於具有跨距爲1的濾波器的輸出寬度將始終是

output width = image width - filter width + 1.