卷积神经网络中的滤波器如何产生多个通道?

时间:2017-02-25 00:14:47

标签: machine-learning tensorflow

我正在使用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],这意味着在过滤后,我们将得到一个大小为2x2(“有效”填充)的图像,包含5个通道。

5个频道从哪里来?根据我的理解,过滤只能生成1个通道。 Tensorflow在这里使用了5种不同的过滤功能吗?

1 个答案:

答案 0 :(得分:0)

tf.nn.conv2d函数的filter参数,如您所引用的,是维度[filter_height, filter_width, in_channels, out_channels]的4D张量。此张量代表一堆out_channels维度filter_height x filter_width过滤器,应用于in_channels个频道的图片。

参数filter_heightfilter_widthout_channels定义的,而input_channels取决于您对{{1>的输入}}

换句话说,尺寸为tf.nn.conv2d的过滤器张量代表[2, 2, 1, 5]个不同的5过滤器,可应用于2 x 2 - 频道输入,但您可以完全改变它到1,或其他任何给你更好的结果。

为了进一步说明,在以下gif中,您有[2, 2, 1, 7]张量滤镜在[3, 3, 1, 1]图像上进行卷积。这意味着您只有[1, 5, 5, 1]过滤器在图像上进行卷积。

Convolution GIF

GIF source