2017-02-25 73 views
0

我正在用Tensorflow學習卷積神經網絡。卷積神經網絡中的濾波器如何生成多個通道?

我對tf.nn.conv2d有一些懷疑。它的一個參數是filter

形狀的過濾器/內核張量[filter_height,filter_width,in_channels,out_channels]

我不明白什麼是out_channels意義。

假設輸入圖像爲[1, 3, 3, 1]。所以尺寸是3xx,通道是1.
然後我們有一個過濾器[2, 2, 1, 5],這意味着在過濾之後,我們將有一個帶有5個通道的2x2(「有效」填充)大小的圖像。

5通道從哪裏來?根據我的理解,過濾只能生成1個通道。 Tensorflow使用5種不同的過濾功能嗎?

+0

http://stackoverflow.com/questions/34619177/what-does-tf-nn-conv2d-do-in-tensorflow的可能的複製 – jabalazs

+0

不重複。我提出了不同的問題,它是對該主題的評論:關於這一點:「這仍然提供5x5輸出圖像,但有7個通道(尺寸爲1x5x5x7),每個通道由集合中的一個過濾器生成。 ,我仍然難以理解7個頻道來自哪裏?你是什​​麼意思「集合中的過濾器」?謝謝 – derek

回答

0

如您所述,tf.nn.conv2d函數的filter參數是尺寸爲[filter_height, filter_width, in_channels, out_channels]的4維張量。該張量表示尺寸爲filter_height x filter_width的一疊out_channels過濾器,其將被應用於具有in_channels通道的圖像上。

的參數,filter_heightfilter_widthout_channels由你定義,而input_channels取決於你的輸入tf.nn.conv2d

換句話說,過濾器張量尺寸[2, 2, 1, 5],代表了一個1聲道輸入應用5不同2 x 2過濾器,但你可以完全將其更改爲[2, 2, 1, 7],或任何其他給你更好的結果。

爲了進一步說明,在下面的gif中,您有一個[3, 3, 1, 1]張量濾波器卷積在[1, 5, 5, 1]圖像上。這意味着您只有1過濾器在圖像上卷積。

Convolution GIF

GIF source

+0

您應該添加使用gif動畫的參考。 – greeness

+0

我的不好。我編輯帖子以添加源代碼。 – jabalazs

+0

用你的GIF例子,[3,3,1,2]過濾器的輸出是什麼? – derek