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

卷积操作

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

图片宽度

W = ⌊ N w + 2 P − F S + 1 ⌋ W=\left \lfloor \frac{N_w+2P-F}{S} +1 \right \rfloor W=SNw+2PF+1
图片长度
H = ⌊ N h + 2 P − F S + 1 ⌋ H=\left \lfloor \frac{N_h+2P-F}{S} +1 \right \rfloor H=SNh+2PF+1

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

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

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

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

W = ⌊ W S + 1 ⌋ W=\left \lfloor \frac{W}{S} +1 \right \rfloor W=SW+1

池化操作

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

图片宽度

W = ⌊ W + 2 P − F S + 1 ⌋ W=\left \lfloor \frac{W+2P-F}{S} +1 \right \rfloor W=SW+2PF+1
图片高度
H = ⌊ H + 2 P − F S + 1 ⌋ H=\left \lfloor \frac{H+2P-F}{S} +1 \right \rfloor H=SH+2PF+1


在这里插入图片描述
但,一般来说,池化操作的步长等于池化核的尺寸,而且池化一般不进行填充,所以公式

图片宽度
W = ⌊ W − F F + 1 ⌋ W=\left \lfloor \frac{W-F}{F} +1 \right \rfloor W=FWF+1
图片高度
H = ⌊ H − F F + 1 ⌋ H=\left \lfloor \frac{H-F}{F} +1 \right \rfloor H=FHF+1

举例:

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

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

你可能感兴趣的:(Deep,Learning,深度学习,机器学习)