2017-02-25 112 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