CNN卷积过程输出特征图的尺寸与维度变化(以VGG模型为例)

       卷积过程是CNN的核心,准确推导各卷积层输出的维度是实现CNN的基础,下面总结一下CNN卷积过程中输出特征图的尺寸与维度变化规律.

       CNN常以图像作为输入,例如VGG的输入图像格式就为224*224*3,其中224*224是图像的height*width,3是通道数。因此,VGG的输入数据实际上是一个三维的变量,卷积层中的卷积核相应也应是三维。通常情况下,输入图像的height与width相等,卷积核也往往只有一个参数——卷积核大小。常用的卷积核有1*1*1、3*3*3、5*5*5、7*7*7等,如今更偏向使用小卷积核,因为其堆叠起来可以获得与大卷积核相似的感受野,同时参数量大大减少。下图是VGG模型的各层参数:

       在上图中,conv3-64表示该卷积层使用的是3*3*3卷积核,卷积核数量为64,因此该卷积层输出数据的维度应为64维。同理可得,VGG最后输出数据的维度为512维。

       那么,在卷积过程中,各卷积层输出的特征图尺寸(height*width)是如何变化的呢?特征图的尺寸主要与卷积核的大小、步长、输入图的尺寸与填充量有关。常用的Tensorflow框架有两种填充模式——same与valid,same表示用0填充,输出尺寸与输入尺寸相同;valid不填充。因为特征图尺寸的推导公式通过画出示意图,根据卷积公式可以轻易得到,所以直接摆出结果:

valid:

height = (H-F)/S+1;width = (W-F)/S+1;H、W分别指输入图的尺寸,F为卷积核大小,S表示步长。

猜你喜欢

转载自blog.csdn.net/fun_always/article/details/86586390