Keras Conv2D:过滤器与 kernel_size

Posted

技术标签:

【中文标题】Keras Conv2D:过滤器与 kernel_size【英文标题】:Keras Conv2D: filters vs kernel_size 【发布时间】:2018-12-13 06:46:41 【问题描述】:

这两者有什么区别?这也有助于在更一般的卷积网络背景下进行解释。

另外,顺便提一下,什么是渠道?换句话说,请为我分解 3 个术语:通道、过滤器和内核。

【问题讨论】:

【参考方案1】:

每个卷积层由几个卷积通道(又名深度或过滤器)组成。在实践中,它们是一个数字,例如64, 128, 256, 512 等。这等于卷积层输出中的通道数。另一方面,kernel_size 是这些卷积滤波器的大小。在实践中,它们采用诸如3x31x15x5 之类的值。简而言之,它们可以写成135,因为它们在实践中大多是方形的。

编辑

下面的引用应该更清楚。

Discussion on vlfeat

假设X 是一个输入,大小为W x H x D x N(其中N 是批次的大小)到网络中包含过滤器F(大小为FW x FH x FD x K)的卷积层。

特征通道的数量D 是此处输入X 的第三维(例如,如果输入包含彩色图像,则在网络的第一个输入处通常为 3)。 过滤器数量KF 的第四维。 这两个概念密切相关,因为如果一层中的过滤器数量为K,它会产生具有 K 个特征通道的输出。所以下一层的输入会有K特征通道。

上面的FW x FH 是您要查找的过滤器大小。

已添加

您应该熟悉filters。您可以认为每个过滤器负责从原始图像中提取某种类型的特征。 CNN 尝试学习这样的过滤器,即在 CNN 中参数化的过滤器是在 CNN 训练期间学习的。您将 Conv2D 中的每个过滤器应用于每个输入通道,并将它们组合起来以获得输出通道。所以,过滤器的数量和输出通道的数量是一样的。

【讨论】:

所以通道、过滤器和深度都意味着相同的东西? 只是为了确定,上面的 FW 是一个新变量,它不像 F*W,对吧? 是的,FW 是过滤器的宽度,FH 是过滤器的高度。 所以,在输入中,3个通道的含义很明确,R,G,B值。但是在隐藏值中,有时我们有超过 3 个通道,它们的含义是什么?此外,单个隐藏神经元中的值是否可以包含来自多个输入通道(例如 R 和 B)的值,或者通过卷积过程在输入通道之间没有“混合”? 我在上面修改了过滤器的解释。

以上是关于Keras Conv2D:过滤器与 kernel_size的主要内容,如果未能解决你的问题,请参考以下文章

TensorFlow之keras.layers.Conv2D( )

如何正确从 keras 中的 Conv2D 获取层权重?

Keras 中的 conv2d 和 Conv2D 有啥区别?

反射填充 Conv2D

如何确定 Keras Conv2D 函数中的“过滤器”参数

如何在 Conv2D 层中使用 keras 指定填充?