AlexNet详解
论文亮点:
- 首次使用了GPU进行网络的加速训练
- 使用Relu激活函数,而不是传统的sigmoid激活函数以及tanh激活函数
- 使用了LRN局部响应归一化
- 在使用全连层的前两层中,使用了Dropout随机失活神经元操作,来减少过拟合
结构详解:
模型结构可以看做两个部分,作者用了两块并行的GPU进行了训练
Conv1:
kernels:48x2=96
kenel_size:11x11
padding:[1,2]
stride:2
input_size:[224,224,3]
output_size:[55,55,96]
计算:N=(W-F+2P)/S+1=[224-11+(1+2)]/2+1=55
Maxpool1:
kernel_size:3
padding:0
stride:2
input_size:[55,55,96]
output_size:[27,27,96]
计算:N=(55-3)/2+1=27
Conv2:
kernels:1282=256
kernel_size:5
padding:[2,2]
stride:1
input_size:[27,27,96]
output_size:[27,27,256]
计算:N=(27-5+4)/1+1=27
Maxpool2:
kernel_size:3
padding:0
stride:2
input_size:[27,27,256]
output_size:[13,13,256]
计算:N=(27-3)/2+1=13
Conv3:
kernels:1922=384
kernel_size:3
padding:[1,1]
stride:1
input_size:[13,13,256]
output_size:[13,13,384]
计算:N=(13-3+2)/1+1=13
Conv4:
kernels:1282=256
kernel_size:3
padding:[1,1]
stride:1
input_size:[13,13,384]
output_size:[13,13,256]
计算:N=(13-3+2)/1+1=13
Conv5:
kernels:1282=256
kernel_size:3
padding:[1,1]
stride:1
input_size:[13,13,256]
output_size:[13,13,256]
计算:N=(13-3+2)/1+1=13
Maxpool3:
kernel_size:3
padding:0
stride:2
input_size:[13,13,256]
output_size:[6,6,256]
计算:N=(13-3)/2+1=6
最后将输出展平 66*256,与全连接层的2048个神经元相连。最后是1000个类别,所以最后一个全连接层是1000个神经元。