如何设计卷积神经网络架构和卷积、池化后图片大小的计算
(一)卷积神经网络及卷积层或池化层大小的设置
(1)如何设计卷积神经网络架构
下面的正则化公式总结了一些经典的用于图片分类问题的卷积神经网络架构:
输入层→(卷积层+→池化层?)+→全连接层+
“+”表示一层或多层,“?”表示有或者没有
除了LeNet-5模型,2012年ImageNet ILSVRC图像分类挑战的第一名AlexNet模型、2013年ILSVRC第一名ZF Net模型已 经 2014年第二名VGGNet模型的架构都满足上面的正则表达式。
(2)如何设置卷积层或池化层配置
· 过滤器的尺寸:1或3或5,有些网络中有过7甚至11
· 过滤器的深度:逐层递增。每经过一次池化层之后,卷积层深度*2
· 卷积层的步长:一般为1,有些也会使用2甚至3
· 池化层:最多的是max_pooling,过滤器边长一般为2或者3,步长一般为2或3
(二)卷积和池化后图片大小及个数的计算
(1)卷积后图片输出大小几个数
W:图像宽,H:图像高,D:图像深度(通道数)
F:卷积核宽高,N:卷积核(过滤器)个数S:步长,P:用零填充个数
卷积后输出图像大小:
Width=(W-F+2P)/S+1
Height=(H-F+2P)/S+1
卷积后输出图像深度:
N=D
输出图像大小: (width,height,N)
weight个数: F*F*D*N
bias个数: N
总结:卷积输出大小=[(输入大小-卷积核(过滤器)大小+2*P)/步长]+1
通用的卷积时padding 的选择:
1. 如卷积核宽高为3时 padding 选择1
2. 如卷积核宽高为5时 padding 选择2
3. 如卷积核宽高为7时 padding 选择3
池化后图片输出大小及个数
W:图像宽,H:图像高,D:图像深度(通道数)
F:卷积核宽高,S:步长
池化后输出图像大小:
W=(W-F)/S+1
H=(H-F)/S+1
池化后输出图像深度:
N=D
总结:池化输出大小=[(输入大小-卷积核(过滤器)大小)/步长]+1