以AlexNet为例解释卷积的尺度变化的计算过程和参数量
- 卷积后的尺寸变化计算过程:
假设图像大小为N*N矩阵
卷积核的尺寸为K*K矩阵
卷积的方式(边缘像素填充方式):P
卷积的步长为S*S
那么经过一层这样的卷积后出来的图像为:
最后得到的输出即为N*N大小图像。
- 池化层的尺寸变化计算过程:
O=输出图像的尺寸。
I=输入图像的尺寸。
S=移动步长
Ps=池化层尺寸
输出图像尺寸的计算公式如下:
- 卷积层:核的深度等于输入图像的通道数C.于是每个核有K*K个参数.并且有N个核.由此得出以下的公式.
参数量 = K*K*C*N(卷积核)+N(偏置)个
- 全连接层:
当前卷积层的尺寸O,卷积核数量N,全连接层神经元数量F,参数量=O*O*N*F+F
当前FC层的神经元数量F,前FC层的神经元数量F-1,参数量 =F*(F-1)+F
AlexNet网络结构:
层结构 | 尺寸变化计算过程 | 参数量计算过程 |
输入图像,227*227*3 | ||
Conv-1, 核大小11*11,96个核。步长(stride)为4,边缘填充(padding)为0 |
(227-11+0*2)/4+1=55 55*55*96 |
11*11*3*96+96 = 34944 |
MaxPool-1, 尺寸为3*3,步长为2 |
(55-3)/2+1=27 27*27*96 |
0 |
Conv-2, 核尺寸:5*5,数量:256,步长:1,填充:2 |
(27-5+2*2)/1+1=27 27*27*256 |
5*5*96*256+256=614656 |
MaxPool-2, 尺寸:3*3,步长:2 |
(27-3)/2+1=13 13*13*256 |
0 |
Conv-3, 核尺寸:3*3,数量:384,步长:1,填充:1 |
(13-3+2*1)/1+1=13 13*13*384 |
3*3*256*384+384=885120 |
Conv-4, 核尺寸:3*3,数量:384,步长:1,填充:1 |
(13-3+2*1)/1+1=13 13*13*384 |
3*3*384*384+384=1327488 |
Conv-5, 核尺寸:3*3,数量:256,步长:1,填充:1 |
(13-3+2*1)/1+1=13 13*13*256 |
3*3*384*256+256=884992 |
MaxPool-3, 尺寸:3*3,步长:2 |
(13-3)/2+1=6 6*6*256 |
0 |
FC-1, 全连接层1共有4096个神经元 |
4096*1 | 6*6*256*4096+4096=37752832 |
FC-2, 全连接层1共有4096个神经元 |
4096*1 | 4096*4096+4096=16781312 |
FC-3, 全连接层1共有1000个神经元 |
1000*1 | 4096*1000+1000=4097000 |