卷积神经网络:由输入大小计算输出大小

由输入大小计算输出大小

    • 卷积操作
    • 池化操作

卷积操作

假设输入大小为**(H,W),卷积核(滤波器)大小为(FH,FW)**,输出大小 为(OH,OW),填充为P,步幅为S。则输出大小可以通过下式计算。
O H = H + 2 P − F H S + 1 OH = \frac{H + 2P - FH}{S} + 1 OH=SH+2PFH+1
O W = W + 2 P − F W S + 1 OW = \frac{W + 2P - FW}{S} + 1 OW=SW+2PFW+1

例1: 输入大小:(7,7);填充:1;步幅:2;卷积核大小:(3,3)
O H = 7 + 2 × 1 − 3 2 + 1 = 4 OH = \frac{7 + 2×1 - 3}{2} + 1=4 OH=27+2×13+1=4
O W = 7 + 2 × 1 − F W 2 + 1 = 4 OW = \frac{7 + 2×1 - FW}{2} + 1=4 OW=27+2×1FW+1=4
所以输出大小(4,4)。
通过上述式子就可以计算输出大小。但是所设定的值必须使 H + 2 P − F H S \frac{H + 2P - FH}{S} SH+2PFH W + 2 P − F W S \frac{W + 2P - FW}{S} SW+2PFW分别可以除尽。当输出大小无法除尽时(就算结果为小数),需要采取报错等对策。

注:有的深度学习框架会选择四舍五入而不进行报错处理。

池化操作

假设输入大小为**(H,W),卷积核(滤波器)大小为(F,F)**,输出大小 为(OH,OW),填充为P,步幅为S。则输出大小可以通过下式计算。

注:一般情况下,步幅S等于卷积核大小F,即 S = F

公式如下:
O H = H − F S + 1 OH = \frac{H - F}{S} + 1 OH=SHF+1
O W = W − F S + 1 OW = \frac{W - F}{S} + 1 OW=SWF+1
例2: 输入大小:(28,28);步幅:2;卷积核大小:(2,2)
O H = 28 − 2 2 + 1 = 14 OH = \frac{28 - 2}{2} + 1=14 OH=2282+1=14
O W = 28 − 2 2 + 1 = 14 OW = \frac{28 - 2}{2} + 1=14 OW=2282+1=14
所以输出大小(4,4)。

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