LeNet5

LeNet5可以说是最早的卷积神经网络了,它发表于1998年,论文原文Gradient-Based Learning Applied to Doucment Recognition作者是Yann Le Cun等。下面对LeNet5网络架构进行简单的说明,有兴趣的同学可以去参考原文,论文原文地址 http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf。


Conv1: f=[5,5], s=[1,1], padding=’valid’
Pool1: f=[2,2], s=[2,2]
Conv2: f=[5,5], s=[1,1], padding=’valid’
Pool2: f=[2,2], s=[1,1]
fc1: 1024 relu
fc2: 200 relu
fc3: 6 softMax

(m,64,64,3)-(m,60,60,8)-(m,30,30,8)-(m,26,26,16)-(m,13,13,16)
(m,1024)-(m,200)-(m,6)

def LeNet5(input_shape=(64,64,3), classes=6):X_input = Input(input_shape)X = Conv2D(filters=8, kernel_size=(5,5), strides=(1,1), padding='valid',name='conv1')(X_input)X = MaxPooling2D((2,2), strides=(2,2), name='maxpool1')(X)X = Conv2D(filters=16, kernel_size=(5,5), strides=(1,1), padding='valid',name='conv2')(X)X = MaxPooling2D((2,2), strides=(2,2), name='maxpool2')(X)X = Flatten()(X)X = Dense(1024,    activation='relu',    name='fc1')(X)X = Dense(200,     activation='relu',    name='fc2')(X)X = Dense(classes, activation='softmax', name='fc3')(X)model = Model(inputs=X_input, outputs=X, name='LeNet5')return model

卷积神经网络在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入与输出之间的精确的数学表达式,只要用已知的模式对卷积神经网络加以训练,网络就具有输入与输出之间的映射能力。卷积网络是有监督学习,所以它的样本集都形如:(输入向量,理想输出向量)之类的向量对构成。
在训练之前,所有权值都用一些不同的小随机数进行初始化,小的随机数可以保证网络不会因权值太大而进入饱和状态,从而导致训练失败。不同则保证网络可以正常学习。
如果要是用相同的数去初始化矩阵,网络会没有学习的能力。

网络的训练过程为:
分为四步:
(1) 在一批数据中取样(Sample a batch of data)
(2)前向过程计算得到损失(Forward prop it through the graph, get loss)
(3)反向传播计算梯度(Backprop to calculate the gradient)
(4)利用梯度进行梯度的更新(Updata the parameters using the gradient)
这里,网络的训练主要分为2个大的阶段:

第一阶段,向前传播阶段:
1)从样本集中取一个样本(X,Yp),将X输入网络;

2)计算相应的实际输出Op。

在此阶段,信息从输入层经过逐级的变换,传送到输出层。这个过程也是网络在完成训练后正常运行时执行的过程。在此过程中,网络执行的是计算(实际上就是输入与每层的权值矩阵相点乘,得到最后的输出结果):

Op=Fn(…(F2(F1(XpW(1))W(2))…)W(n))

第二阶段,向后传播阶段

1)算实际输出Op与相应的理想输出Yp的差;

2)按极小化误差的方法反向传播调整权矩阵。

AlexNet

1、AlexNet网络结构





2、AlexNet应用在手势RGB图片

网络结构

Input   (64,64,3)Conv1     f=[5,5],  s=[1,1],  (60,60,8)   Relu1
Maxpool1  f=[2,2],  s=[2,2],  (30,30,8)   LRN1Conv2     f=[5,5] ,  s=[1,1] ,  (26,26,16)  Relu2
Maxpool2  f=[2,2],  s=[2,2],   (13,13,16)  LRN2Conv3     f=[3,3],  s=[1,1],   padding=’same’,   (13,13,32)   Relu3Conv4     f=[3,3],  s=[1,1],   padding=’same’,   (13,13,32)   Relu4Conv5     f=[3,3],  s=[1,1],   padding=’same’,   (13,13,16)   Relu5
Avepool1  f=[3,3],  s=[2,2],   (6,6,16)Flatten 6*6*16Fc1   1024   Relu6   Dropout1Fc2   1024   Relu7   Dropout2Fc3   6  Softmax

代码实现

def AlexNet(input_shape=(64,64,3), classes=6):X_input = Input(input_shape)"conv layer 1"X = Conv2D(filters=8, kernel_size=(5,5), strides=(1,1), padding='valid',name='conv1')(X_input)X = Activation('relu')(X)X = MaxPooling2D((2,2), strides=(2,2), name='maxpool1')(X)# X = LRN2D(alpha=0.0001, beta=0.75)(X)"conv layer 2"X = Conv2D(filters=16, kernel_size=(5,5), strides=(1,1), padding='valid',name='conv2')(X)X = Activation('relu')(X)X = MaxPooling2D((2,2), strides=(2,2), name='maxpool2')(X)# X = LRN2D(alpha=0.0001, beta=0.75)(X)"conv layer 3"X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), padding='same',name='conv3')(X)X = Activation('relu')(X)"conv layer 4"X = Conv2D(filters=32, kernel_size=(3,3), strides=(1,1), padding='same',name='conv4')(X)X = Activation('relu')(X)"conv layer 5"X = Conv2D(filters=16, kernel_size=(3,3), strides=(1,1), padding='same',name='conv5')(X)X = Activation('relu')(X)X = AveragePooling2D((3,3), strides=(2,2), name='maxpool3')(X)"flatten, fc1, fc2, fc3"X = Flatten()(X)X = Dense(1024,    activation='relu',    name='fc1')(X)X = Dense(1024,    activation='relu',    name='fc2')(X)X = Dense(classes, activation='softmax', name='fc3')(X)model = Model(inputs=X_input, outputs=X, name='AlexNet')return model

深度学习(04)-- 典型CNN结构(LeNet5 ,AlexNet)相关推荐

  1. 深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

    卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类.定位等领域中.相比于其他神经网 ...

  2. 深度学习 --- 卷积神经网络CNN(LeNet-5网络学习算法详解)

    上一节我们详细探讨了LeNet-5网络的架构,但是还没有解释该网络是如何进行学习的,如何更新权值的,本节将接着上一节进一步CNN的学习机制和权值更新过程,这里请大家一定要对CNN网络有一个清晰的认识, ...

  3. 【深度学习】Swin Transformer结构和应用分析

    [深度学习]Swin Transformer结构和应用分析 文章目录 1 引言 2 Swin Transformer结构 3 分析3.1 Hierarchical Feature Representa ...

  4. 【深度学习】如何从结构出发更好的改进一个神经网络(二)

    [深度学习]如何从结构出发更好的改进一个神经网络(二) 文章目录 1 空洞卷积(dilated convolution) 2 PReLU 3 LeakyReLU可以解决神经元"死亡" ...

  5. 【深度学习】如何从结构出发更好的改进一个神经网络

    [深度学习]如何从结构出发更好的改进一个神经网络 文章目录 1 降采样和升采样 2 UNet++模型诞生 3 参数多了是导致UNet++比UNet好吗 4 一些思路 5 改进卷积结构5.1 转置卷积5 ...

  6. 花书+吴恩达深度学习(二三)结构化概率模型(贝叶斯网络、马尔可夫随机场)

    文章目录 0. 前言 1. 有向模型 2. 无向模型 3. 因子图 4. 分离和d-分离 5. 从图模型中采样 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔,我会非常开心的~ 花书+吴恩达深 ...

  7. 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述

    深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 目录 深度学习 | MATLAB实现CNN卷积神经网络结构及参数概述 基本介绍 模型描述 训练过程 计算函数 参考资料 基本介绍 卷积神 ...

  8. 大数据深度学习下的车辆结构化——明景车辆结构化分析

    大数据深度学习下的车辆结构化--明景车辆结构化分析 车辆全特征结构化识别技术是计算机人工智能.图像处理.计算机视觉.模式识别等相关技术的综合应用.目前涉车涉驾案件的快速增长,以及车辆结构化.智慧城市应 ...

  9. 深度学习(05)--典型CNN结构(VGG13,16,19)

    文章目录 目录 1.VGG结构 2.VGG结构解释 3.3*3卷积核的优点 4.VGG的muti-scale方法 5.VGG的应用 目录 1.VGG结构  LeNet5用大的卷积核来获取图像的相似特 ...

  10. 深度学习--卷积神经网络CNN

    主要内容 1. 神经网络 1.1 感知器 1.2 Sigmoid神经元 1.3 神经网络 2. 卷积神经网络CNN 2.1 卷积神经网络结构 2.2 数据输入层 2.3 卷积层 2.3.1 局部感知( ...

最新文章

  1. HBase总结(十三)HBase Shell 常用命令及例子
  2. ES6转ES5:Gulp+Babel
  3. 计算机乘除法运算中部分积和余数的符号位选择与位移的关系
  4. Jdk1.8新特性(三)——方法引用::
  5. java Socket通信(一)
  6. P6847-[CEOI2019]Magic Tree【dp,线段树合并】
  7. Linux: shell命令 eval (有图有代码有真相!!!)
  8. java 操作redis
  9. [新功能]查看好友最新随笔
  10. 为提升效率,阿里取消周报制度?醒醒吧,自动化报表才是出路
  11. python tkinter treeview 高亮_满满的成就感~如何用python让你的想法拥有可操作性?(一)...
  12. java 叉号关闭_求助 java 如何编写JFrame窗体右上角红色打叉关闭按钮的事件?
  13. 凭据分配没有加密oracle_远程连接身份验证错误,又找不到加密Oracle修正
  14. Oracle网格控制器OMA端安装Yast
  15. numpy tricks(一)—— 多维数组的阈值化处理
  16. ios实例开发精品文章推荐(8.13)
  17. java 重复流_Java Logger控制台流重复输出 - java
  18. Linux 操作系统原理 — 内存 — 大页内存
  19. 2021PMP最全大纲内容整理
  20. 视频教程-思科CCNP专题系列②:EIGRP路由协议-思科认证

热门文章

  1. 将Linux下编译的warning警告信息输出到文件中
  2. Wince6 Eboot中加入开机画面
  3. 培智学校计算机课教案,培智数学教案
  4. LSGO软件技术团队2015~2016学年第十周(1102~1108)总结
  5. 【转】.net框架读书笔记---CLR内存管理\垃圾收集(一)
  6. 【转】Microsoft Teams快速上手系列-02Teams组成概述及使用分享
  7. 集卡php源码,独角数卡自动发卡网PHP源码+教程:虚拟产品自助售卖
  8. vb checkbox选中和不选中_UE4 4.23 RetainerBox 选中框位置不正确
  9. 一篇关于Qt开发技巧的文章收藏
  10. 【JS 逆向百例】网洛者反爬练习平台第四题:JSFuck 加密