卷积和池化操作对图片尺寸改变

卷积操作

对于输入图像尺寸为NwNhN_w * N_h,图片通道数为C,那么 j假设卷积核尺寸为FxF,通道数也为C 步幅为S,Padding使用P,经过该卷积层后输出的图像尺寸为WxH:

图片宽度

W=Nw+2PFS+1 W=\left \lfloor \frac{N_w+2P-F}{S} +1 \right \rfloor
图片长度
H=Nh+2PFS+1 H=\left \lfloor \frac{N_h+2P-F}{S} +1 \right \rfloor

假设卷积核的个数为 T,那么之后输出图片大小为 WHW*H ,通道数为T

具体过程可以参考下面的吴恩达教授的关于卷积神经网络的教程
教程链接:https://mooc.study.163.com/course/2001281004#/info
卷积和池化操作对图片尺寸改变
最近碰到的总是TF中的参数问题,其中一个padding的参数值设置觉得比较重要。tf中padding提供两种填充方式:VALID和SAME。

对于VALID,就是不填充,进行卷积,再除以步长,输出的形状计算如下:
W=WFS+1 W=\left \lfloor \frac{W-F}{S} +1 \right \rfloor

对于SAME,即卷积之后填充,仅仅除以步长,输出的形状计算如下:

W=WS+1 W=\left \lfloor \frac{W}{S} +1 \right \rfloor

池化操作

对于输入图像尺寸为WHW * H,图片通道数为C,那么 假设池化核尺寸为FxF,通道数也为C 步幅为S,Padding使用P,经过池化后输出的图像尺寸为WxH:
公式和池化操作一样

图片宽度

W=W+2PFS+1 W=\left \lfloor \frac{W+2P-F}{S} +1 \right \rfloor
图片高度
H=H+2PFS+1 H=\left \lfloor \frac{H+2P-F}{S} +1 \right \rfloor


卷积和池化操作对图片尺寸改变
但,一般来说,池化操作的步长等于池化核的尺寸,而且池化一般不进行填充,所以公式

图片宽度
W=WFF+1 W=\left \lfloor \frac{W-F}{F} +1 \right \rfloor
图片高度
H=HFF+1 H=\left \lfloor \frac{H-F}{F} +1 \right \rfloor

举例:

当进行池化操作时,步长S就等于池化核的尺寸,如输入为30x30,池化核为5x5,则输出为
3055+1=6 \frac{30-5}{5}+1=6

当进行池化操作时,步长S就等于池化核的尺寸,如输入为30x30,池化核为7x7,则输出为
3077+1=4.3=4 \frac{30-7}{7}+1=4.3=4
就是向下取整,取最小的整数,即为4.3,也是 取4