卷积神经网络的卷积核(kernel)、输入尺寸(input)、步长(stride)、填充(padding)关系

基本意义

卷积核(kernel):用于对输入图像进行共享权值的遍历;如果将图像每一个图像的每一个像素作为卷积输入层的元素,那么卷积核就相当与每个输入的权值,且有卷积核大小的一组输入使用同一组权值。例如,一个图像是99大小,卷积核是33;则输入是81个,共享权值是9个一组。
步长(stride):卷积核是在图片上移动后遍历每一个像素,每次移动的大小就是步长stride
填充(padding):是为了满足输出的图像的维度要求,最终图像的输出宽度会=原来输出宽度+2padding,因为是周围填充

几个关系

字符含义:i:输入的宽度,k:卷积核的宽度,p:单边填充宽度,o:输出宽度,s:步长

正向卷积

正向卷积的数据关系:o=(i+2p-k)/s+1
理解:从第一个卷积核作为第一个输出图像,然后输出像素是每次移动就会出现一个像素。所以,输入的图像宽度减去卷积和宽度再除以步长,得到的是除去第一个像素后的其他像素。(下图中黑色设为图像像素,红框设为卷积核时步长为2,无填充),则输出很容易看出是3*3,(6-2)/2+1=3

卷积神经网络的卷积核(kernel)、输入尺寸(input)、步长(stride)、填充(padding)关系

反向卷积

当(o+2p-k)%s=0时,输出的尺寸关系是:o=s(i-1)-2p+k
当(o+2p-k)%s≠0时,输出的尺寸关系是:o=s(i-1)-2p+k+(o+2p-k)%s
通过输入和输出宽度的需要,可以选择合适的步长、填充和卷积核