AlexNet网络结构详解与模型的搭建

首先贴出三个链接:

1. AlexNet网络结构详解视频

2. 使用pytorch搭建AlexNet并针对花分类数据集进行训练

3. 使用tensorflow搭建AlexNet并针对花分类数据集进行训练

AlexNet是2012年ILSVRC 2012(ImageNet Large Scale Visual Recognition Challenge)竞赛的冠军网络,分类准确率由传统方法的 70%+提升到 80%+(当时传统方法已经进入瓶颈期,所以这么大的提升是非常厉害的)。它是由Hinton和他的学生Alex Krizhevsky设计的。也是在那年之后,深度学习开始迅速发展。下图是从AlexNet原论文中截取的网络结构图。

在图中有上下两个部分是因为作者使用两块GPU进行并行训练,所以上下两个部分结构是一模一样的,我们直接看下面部分就行了。接下来说说该网络的亮点:

(1)首次利用 GPU 进行网络加速训练。

(2)使用了 ReLU 激活函数,而不是传统的 Sigmoid 激活函数以及 Tanh 激活函数。

(3)使用了 LRN 局部响应归一化。

(4)在全连接层的前两层中使用了 Dropout方法按一定比例随机失活神经元,以减少过拟合。

接着给出经卷积或池化后的矩阵尺寸大小计算公式:

 N = (W − F + 2P ) / S + 1

其中W是输入图片大小,F是卷积核或池化核的大小, P是padding的像素个数 ,S是步距

接下来我们对网络的每一层进行详细的分析:

卷积层1(由于使用了2块GPU,所以卷积核的个数需要乘以2):

Conv1: kernels:48*2=96;kernel_size:11;padding:[1, 2] ;stride:4

其中kernels代表卷积核的个数,kernel_size代表卷积的尺寸,padding代表特征矩阵上下左右补零的参数,stride代表步距

输入的图像shape: [224, 224, 3], 输出特征矩阵的shape: [55, 55, 96]

shape计算:N = (W − F + 2P ) / S + 1 = [ 224 - 11 + (1 + 2)] / 4 + 1 = 55

最大池化下采样层1

Maxpool1: kernel_size:3;pading: 0;stride:2

其中kernel_size是池化核大小,padding代表特征矩阵上下左右补零的参数,stride代表步距

输入特征矩阵的shape: [55, 55, 96], 输出特征矩阵的shape: [27, 27, 96]

shape计算:N = (W − F + 2P ) / S + 1 = (55 - 3) / 2 + 1 = 27

卷积层2

Conv2: kernels:128*2=256; kernel_size:5; padding: [2, 2]; stride:1

输入特征矩阵的shape:[27, 27, 96], 输出特征矩阵的shape: [27, 27, 256]

shape计算:N = (W − F + 2P ) / S + 1 = (27 - 5 + 4) / 1 + 1 = 27

最大池化下采样层2

Maxpool2: kernel_size:3; pading: 0; stride:2

输入特征矩阵的shape:  [27, 27, 256],输出特征矩阵的shape: [13, 13, 256]

shape计算:N = (W − F + 2P ) / S + 1 = (27 - 3) / 2 + 1 = 13

卷积层3

Conv3: kernels:192*2=384; kernel_size:3; padding: [1, 1]; stride:1

输入特征矩阵shape:[13, 13, 256], 输出特征矩阵shape: [13, 13, 384]

shape计算:N = (W − F + 2P ) / S + 1 = (13 - 3 + 2) / 1 + 1 = 13

卷积层4

Conv4: kernels:192*2=384; kernel_size:3; padding: [1, 1]; stride:1

输入特征矩阵shape:[13, 13, 384], 输出特征矩阵shape: [13, 13, 384]

shape计算:N = (W − F + 2P ) / S + 1 = (13 - 3 + 2) / 1 + 1 = 13

卷积层5

Conv5: kernels:128*2=256; kernel_size:3; padding: [1, 1]; stride:1

输入特征矩阵shape:[13, 13, 384],输出特征矩阵shape: [13, 13, 256]

shape计算:N = (W − F + 2P ) / S + 1 = (13 - 3 + 2) / 1 + 1 = 13

最大池化下采样层3

Maxpool3: kernel_size:3 padding: 0 stride:2

输入特征矩阵shape:[13, 13, 256] ,输出特征矩阵shape: [6, 6, 256]

shape计算:N = (W − F + 2P ) / S + 1 = (13 - 3) / 2 + 1 = 6

全连接层1

unit_size: 4096 (unit_size为全连接层节点个数,两块GPU所以翻倍)

全连接层2

unit_size: 4096

全连接层3

unit_size: 1000(该层为输出层,输出节点个数对应你分类任务的类别个数)

最后给出所有层参数的总表:

Layer Name

Kernel Size

Kernel Num

Padding

Stride

Conv1

11

96

[1, 2]

4

Maxpool1

3

None

0

2

Conv2

5

256

[2, 2]

1

Maxpool2

3

None

0

2

Conv3

3

384

[1, 1]

1

Conv4

3

384

[1, 1]

1

Conv5

3

256

[1, 1]

1

Maxpool3

3

None

0

2

FC1

4096

None

None

None

FC2

4096

None

None

None

FC3

1000

None

None

None

关于模型的搭建与训练代码放在我的github中,大家可自行下载使用:

https://github.com/WZMIAOMIAO/deep-learning-for-image-processing

pytorch版本在pytorch_learning文件夹中,tensorflow版本在tensorflow_learning文件夹中.

  • 42
    点赞
  • 183
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 27
    评论
AlexNet是在2012由Alex Krizhevsky等人提出的一种卷积神经网络模型,它是深度学习领域中的经典模型之一。AlexNetImageNet图像识别比赛中获得了当时最好的结果,成为了深度学习的重要里程碑。 AlexNet网络结构包括5个卷积层和3个全连接层,其中使用了ReLU激活函数和Dropout技术。下面是AlexNet网络结构详解: 1. 输入层:输入层接收图像数据,通常为RGB彩色图像,大小为224x224x3。 2. 卷积层1:第一个卷积层包含96个卷积核,大小为11x11x3,步长为4,使用ReLU激活函数。卷积后得到96个大小为55x55x96的特征图。 3. 池化层1:第一个池化层使用最大池化,大小为3x3,步长为2。池化后得到96个大小为27x27x96的特征图。 4. 卷积层2:第二个卷积层包含256个卷积核,大小为5x5x96,步长为1,使用ReLU激活函数。卷积后得到256个大小为27x27x256的特征图。 5. 池化层2:第二个池化层使用最大池化,大小为3x3,步长为2。池化后得到256个大小为13x13x256的特征图。 6. 卷积层3:第三个卷积层包含384个卷积核,大小为3x3x256,步长为1,使用ReLU激活函数。卷积后得到384个大小为13x13x384的特征图。 7. 卷积层4:第四个卷积层包含384个卷积核,大小为3x3x384,步长为1,使用ReLU激活函数。卷积后得到384个大小为13x13x384的特征图。 8. 卷积层5:第五个卷积层包含256个卷积核,大小为3x3x384,步长为1,使用ReLU激活函数。卷积后得到256个大小为13x13x256的特征图。 9. 池化层3:第三个池化层使用最大池化,大小为3x3,步长为2。池化后得到256个大小为6x6x256的特征图。 10. Flatten层:将池化后的特征图拉平成一维向量,大小为9216。 11. 全连接层1:第一个全连接层包含4096个神经元,使用ReLU激活函数和Dropout技术。 12. 全连接层2:第二个全连接层包含4096个神经元,使用ReLU激活函数和Dropout技术。 13. 输出层:输出层是一个包含1000个神经元的softmax层,用于对图像进行分类AlexNet的优点在于它引入了ReLU激活函数、Dropout技术和GPU加速等新的技术,使得模型的训练速度得到了明显提升。同时,AlexNet在处理大规模图像数据时表现出色,成为了图像识别领域的经典模型
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳花的小绿豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值