假设输入图片大小是100×100,经过一层卷积(kernel size 5×5,padding 2,stride 1),pooling(kernel size 3×3,padding 0,stride 2),那么怎么计算输出的图片大小呢?
其实,不管是卷积还是池化,计算公式都是一样的,如下:
N = (W − F + 2P ) / S + 1
其中,输入数据维度为W*W
Filter大小为 F×F
S:步长
P:padding的像素数
因此根据上面的公式,进行计算:
N=(100-5+2×2)/1 + 1 =100
因此经过一层卷积后,输出图片大小仍为100×100,接下来进行pooling:
N = (100-3)/ 2 + 1 = 50
注意:这里的尺寸不被整除,在池化中是向上取整的,因此97/2 取49 。
对于不能整除的数值,卷积向下取整,池化向上取整。
还有就是:
对于神经网络,如果看到stride为1,当kernel为 3 padding为1或者kernel为5 padding为2 ,这就是为了实现卷积前后尺寸不变。