Loading...

参考材料


说在前面

在深入探讨之前,我想先明确区分“kernel”和“filter”这两个术语,因为我已经看到很多人把它们混为一谈。如前所述,kernel是权重矩阵,将权重矩阵与输入相乘以提取相关特征。卷积名称就是kernel矩阵的维数。例如,2D卷积的kernel矩阵就是2D矩阵

关于卷积核和过滤器的定义,事实上在使用时没有多在意,毕竟能理解作者意思即可。但是看到类似于“该层的输出通道=卷积核的个数?”这种信息时我总是有些疑惑.

对于具体的例子,如果输入数据有3个通道(比如一个RGB格式的图片),并且使用了1个滤波器,可能会有一个误解认为输出也应该有3个通道,因为卷积操作会对每个输入通道进行处理。然而,这个理解是不准确的。在深度学习框架中,一个滤波器会对所有输入通道进行操作,并生成一个单独的输出通道。因此,如果你定义了N个滤波器,无论输入通道的数量是多少,你将得到N个输出通道。每个滤波器跨所有输入通道运算,产生一个输出通道,因此输出通道的数量直接等于滤波器的数量。

那么卷积核=滤波器吗?


正文

卷积核就是由长和宽来指定的,是一个二维的概念。

过滤器是是由长、宽和深度指定的,是一个三维的概念;过滤器可以看做是卷积核的集合,过滤器比卷积核高一个维度——深度。


具体示例(多通道):

卷积核大小:3x3
卷积核数目 (和输入通道数相同) :3
滤波器 (3x3x3,前面两个3指的是高度和宽度,后面是卷积核数目) 数目:1

上面的操作是对三个通道分别做卷积操作,然后将卷积的结果相加,最后输出一个特征图。

由上面可以得知,输出通道数=卷积核个数不成立


具体示例(单通道):

卷积核大小:3x3
卷积核数目 (和输入通道数相同) :1

在单通道情况下,其实过滤器和卷积核可以看做一个东西,即filter=kernel

由上面可以得知,,输出通道数=卷积核个数成立


总结

对于多通道来说,输出通道数=卷积核个数不成立,而对于单通道来说是成立的。