卷积神经网络之(深度卷积神经网络)AlexNet

绝地灬酷狼 2022-12-25 13:52 395阅读 0赞

卷积神经网络之AlexNet

2012年AlexNet横空出世,赢得了ImageNet2012图像识别挑战赛。首次证明了学习到的特征可以超越手工设计的特征。

AlexNet模型

format_png

AlexNet模型使用了8层卷积神经网络,其中有5层卷积和2层全连接层以及1个全连接输出层。

网络结构与具体参数如下:






















































































































Block 连接层 Filter大小 步长stride Filter个数 图像尺寸 计算方法
input / / / / 2272273 /
1 卷积层 1111 4 96 555596 (227-11)/4+1=55
池化层 33 2 / 272796 (55-3)/2+1=27
2 卷积层 55 1 1282 (27-5+22)/1+1=27 27271282
池化层 33 2 / (27-3)/2+1=13 13131282
3 卷积层 33 1 1922 (13-3+12)/1+1=13 13131922
4 卷积层 33 1 1922 (13-3+12)/1+1=13 13131922
5 卷积层 33 1 1282 (13-3+12)/1+1=13 13131282
池化层 33 2 / (13-3)/2+1=6 661282
6 全连接层 6*6 / 256 4096 Relu、Dropout
7 全连接层 / / / 4096 /
8 全连接层       1000 SoftMax

代码

  1. from keras.models import Sequential
  2. from keras.layers import Dense, Flatten, Dropout
  3. from keras.layers.convolutional import Conv2D, MaxPooling2D
  4. from keras.utils.np_utils import to_categorical
  5. import numpy as np
  6. seed = 7
  7. np.random.seed(seed)
  8. # 创建模型序列
  9. model = Sequential()
  10. #第一层卷积网络,使用96个卷积核,大小为11x11步长为4, 要求输入的图片为227x227, 3个通道,不加边,激活函数使用relu
  11. model.add(Conv2D(96, (11, 11), strides=(1, 1), input_shape=(28, 28, 1), padding='same', activation='relu',
  12. kernel_initializer='uniform'))
  13. # 池化层
  14. model.add(MaxPooling2D(pool_size=(3, 3), strides=(2, 2)))
  15. # 第二层加边使用256个5x5的卷积核,加边,激活函数为relu
  16. model.add(Conv2D(256, (5, 5), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform'))
  17. #使用池化层,步长为2
  18. model.add(MaxPooling2D(pool_size=(3, 3), strides=(2, 2)))
  19. # 第三层卷积,大小为3x3的卷积核使用384个
  20. model.add(Conv2D(384, (3, 3), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform'))
  21. # 第四层卷积,同第三层
  22. model.add(Conv2D(384, (3, 3), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform'))
  23. # 第五层卷积使用的卷积核为256个,其他同上
  24. model.add(Conv2D(256, (3, 3), strides=(1, 1), padding='same', activation='relu', kernel_initializer='uniform'))
  25. model.add(MaxPooling2D(pool_size=(3, 3), strides=(2, 2)))
  26. model.add(Flatten())
  27. model.add(Dense(4096, activation='relu'))
  28. model.add(Dropout(0.5))
  29. model.add(Dense(4096, activation='relu'))
  30. model.add(Dropout(0.5))
  31. model.add(Dense(10, activation='softmax'))
  32. model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
  33. model.summary()

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NzY2NTYw_size_16_color_FFFFFF_t_70

总结

  • AlexNet与LeNet结构类似,但是使用了更多的卷积层和更大的参数空间拟合大规模数据集。
  • 网络的深度很重要

代码参考:初探Alexnet网络结构

其他经典网络结构:

卷积神经网络之 LeNet卷积神经网络之(稠密连接网络)DenseNet

卷积神经网络之(深度卷积神经网络)AlexNet

卷积神经网络之(使用重复元素的网络)VGG

卷积神经网络之残差网络ResNet详解

发表评论

表情:
评论列表 (有 0 条评论,395人围观)

还没有评论,来说两句吧...

相关阅读

    相关 神经网络

    在介绍卷积神经网络之前我们先了解一下为什么不使用我们上一节介绍的神经网络(全连接层结构)来处理图像。使用全连接层结构处理图像时会出现以下问题: 输入图像需要将图像通过

    相关 神经网络AlexNet

    由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注。 知道2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以

    相关 神经网络-神经网络

    卷积神经网络最基本的操作:卷积、池化、全连接 1、卷积操作 什么是卷积操作?我们先定义一个目的,让卷积神经网络去识别数字 “17” 和字母 “L”。 有三张图片,

    相关 神经网络

    概述 简单描述 首先介绍神经网络的参数。这些参数是由一些可学习的滤波器集合构成的,每个滤波器在空间上(宽度和高度)都比较小`个人觉得这个滤波器就是卷积核`,但是深度和

    相关 神经网络

    [卷积神经网络][Link 1]     在上篇中介绍的输入层与隐含层的连接称为全连接,如果输入数据是小块图像,比如8×8,那这种方法是可行的,但是如果输入图像是96×96,