我正在使用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种不同的过滤功能吗?
答案 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_height
,filter_width
和out_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]
过滤器在图像上进行卷积。