由于我个人学习图像分类的时候就是从lenet、alexnet开始学的,而lenet本身比较简单,因此就从alexnet开始写了,本系列会从alexnet开始写到最新的convNext、transformer等分类算法,如果后期有新的分类算法发表,我也会根据自己学习的情况持续更新。
代码git地址:xs-dl: 深度学习相关算法研究和实现 (gitee.com)(持续更新中)
1 alexnet网络结构
论文地址:ImageNet Classification with Deep Convolutional Neural Networks (neurips.cc)
上图来自于alex大神在2012年发表的ImageNet Classification with Deep Convolutional Neural Networks论文,当年其凭借alexnet算法力压以往传统算法,一举摘得2012年图像分类大赛的冠军。alexnet网络具有6000万个参数和650,000个神经元的神经网络由五个卷积层组成,随后是最大池化层,三个全连接层以及最后的1000个softmax输出。
2 alexnet网络参数
layer_name | kernel_size | kernel_num | stride | padding | input_size | output_size |
---|---|---|---|---|---|---|
conv1 | 11*11 | 96 | 4 | [1, 2] | 224*224*3 | 55*55*96 |
max_pool1 | 3*3 | / | 2 | / | 55*55*96 | 27*27*96 |
conv2 | 5*5 | 256 | 1 | [2, 2] | 27*27*96 | 27*27*256 |
max_pool2 | 3*3 | / | 2 | / | 27*27*256 | 13*13*256 |
conv3 | 3*3 | 384 | 1 | [1, 1] | 13*13*256 | 13*13*384 |
conv4 | 3*3 | 384 | 1 | [1, 1] | 13*13*384 | 13*13*384 |
conv5 | 3*3 | 256 | 1 | [1, 1] | 13*13*384 | 13*13*256 |
max_pool3 | 3*3 | 0 | 2 | 0 | 13*13*256 | 6*6*256 |
fc1 | 4096 | / | / | / | 6*6*256 |