经典网络模型介绍系列——LeNet-5

article/2025/7/3 15:58:05

从今天开始,带大家从LeNet5开始学习经典的网络模型。

一、LeNet-5

LeNet-5是LeNet系列的最终稳定版,它被美国银行用于手写数字识别,该网络有以下特点

  • 所有卷积核大小均为5*5,步长为1;
  • 所有池化方法为平均池化;
  • 所有激活函数采用Sigmoid

1.输入层:输入图像的尺寸统一归一化为32*32.

2.C1层:第一个卷积层

  • 输入图片大小:32*32
  • 卷积核大小:5*5,步长1,无填充
  • 卷积核种类:6
  • 输出特征图大小:28*28                 32-5+1=28
  • 神经元数量:28*28*6=4704
  • 可训练参数:(5*5+1)*6=156             其中,1为偏置参数
  • 连接数(和输入层的连接数):(5*5+1)*6*28*28=122304

3.S2层-池化层(下采样层)

  • 输入特征图大小:28*28
  • 采样区域:2*2
  • 采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid函数。
  • 采样种类:6
  • 输出特征图大小:14*14
  • 神经元数量:14*14*6
  • 连接数(和C1层连接):(2*2+1)*6*14*14
  • S2中每个特征图的大小是C1中特征图大小的1/4.

4.C3层-第二个卷积层

  • 输入:S2中所有6个或者几个特征图组合
  • 卷积核大小:5*5
  • 卷积核种类:16
  • 输出特征图大小:10*10        14-5+1=10
  • C3中的每个特征图是连接到S2中的所有6个或者几个特征图的,表示本层的特征图是上一层提取到的特征图的不同组合。存在的一个方式是:C3的前6个特征图以S2中3个相邻的特征图子集作为输入。接下来6个特征图以S2中4个相邻特征图自己为输入。然后的3个以不相邻的4个特征图子集作为输入。最后一个将S2中所有特征图作为输入。输出的16个通道并没有与输入的每个通道相连。这样设计的初衷有两个:
    • 1.减小计算量;
    • 2.打破对称性。
    • 现在的网络设计中,很少会遵循这样的设计原则。
  • 可训练参数:6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516
  • 连接数:10*10*1516=151600

5.S4层-池化层(下采样层)

  • 输入:10*10
  • 采样区域:2*2
  • 采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid函数。
  • 采样种类:16
  • 输出特征图大小:5*5
  • 神经元数量:5*5*16=400
  • 连接数:(2*2+1)*400=2000
  • S4中每个特征图的大小是C3特征图大小的1/4

6.C5层-第三个卷积层

  • 输入:5*5,即S4层的全部16个单元特征图(与S4全相连)
  • 卷积核大小:5*5
  • 卷积核种类:120
  • 输出特征图大小:1*1        (5-5+1)
  • 可训练参数:120*(16*5*5+1)=48120
  • 连接数:1*1*48120=48120
  • C5层是一个卷积层。由于S4层的16个图的大小为5*5,与卷积核的大小相同,所以卷积后形成的图的大小为1*1。这里形成120个卷积结果。每个都与上一层的16个图相连。所以共有(5*5*16+1)*120=48120个连接。

7.F6层-全连接层

  • 输入:120维向量
  • 输出:84维向量
  • 计算方式:计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。
  • 可训练参数:84*(120+1)=10164

8.输出层-全连接层

  • 输入:84维向量
  • 输出:10维向量
  • 可训练参数:84*10,其中10就是分类的类别数。一共有10个节点,分别代表数字0到9,且如果节点i的值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。假设x是上一层的输入,y是RBF的输出,则RBF输出的计算方式是:

y_{i}=\sum_{j=1}^{n}(x_{j}-w_{ij})^{2}

下图是LeNet-5识别数字3的过程:

LeNet5的缺点:

输入图像太小,数据不足,在早期并没有在除手写数字识别之外的其他计算机视觉任务上取得大的突破。


http://chatgpt.dhexx.cn/article/uxhPfllC.shtml

相关文章

LeNet5的深入解析

论文:Gradient-based-learning-applied-to-document-recognition 参考:http://blog.csdn.net/strint/article/details/44163869 LeNet5 这个网络虽然很小,但是它包含了深度学习的基本模块:卷积层,池化层,…

LeNet5模型讲解

加粗样式LeNet5模型讲解 LeNet5模型总览 总共8层网络,分别为: 输入层(INPUT)、卷积层(Convolutions,C1)、池化层(Subsampling,S2)、卷积层(C3)、…

LeNet-5详解

一、前言 LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。 本文将从卷积神经网络结构的基础说起,详细地讲解每个网络层。 论文下载:请到文章结尾处下载。 …

卷积神经网络:LeNet-5

2021SCSDUSC LeNet-5卷积神经网络的整体框架: 特征映射:一幅图在经过卷积操作后得到结果称为特征图。 LeNet-5共有8层,包含输入层,每层都包含可训练参数;每个层有多个特征映射(,每个特征映射通过一种卷积…

LeNet-5网络详解

文章目录 1 模型介绍2 模型结构3 模型特性 1 模型介绍 LeNet-5出自论文《Gradient-Based Learning Applied to Document Recognition》,是由 L e C u n LeCun LeCun 于1998年提出的一种用于识别手写数字和机器印刷字符的卷积神经网络,其命名来源于作者 …

深度学习入门(一):LeNet-5教程与详解

1.什么是LeNet LeNet5诞生于1994年,是最早的卷积神经网络之一,并且推动了深度学习领域的发展。自从1988年开始,在多年的研究和许多次成功的迭代后,这项由Yann LeCun完成的开拓性成果被命名为LeNet5。 LeNet: 主要用来…

卷积神经网络(CNN)开山之作——LeNet-5。卷积神经网络基本介绍。

目录 一、LeNet-5的背景 二、传统分类算法在图像识别上的弊端 三、卷积神经网络的3个基本特征 四、LeNet-5的网络结构 1、Input layer 2、Conv1 3、Subsampling2 4、Conv3 5、Subsampling4 6、Conv5 7、FC6 8、Output7 五、LeNet-5总结 一、LeNet-5的背景 LeNet-5…

这可能是神经网络 LeNet-5 最详细的解释了!

大家好,我是红色石头! 说起深度学习目标检测算法,就不得不提 LeNet- 5 网络。LeNet-5由LeCun等人提出于1998年提出,是一种用于手写体字符识别的非常高效的卷积神经网络。出自论文《Gradient-Based Learning Applied to Document R…

c语言--使用函数输出水仙花数

函数接口定义 1、int narcissistic( int number ); 2、void PrintN( int m, int n ); 函数 narcissistic 判断 number 是否为水仙花数,是则返回1,否则返回0。 函数 PrintN 则打印开区间 (m, n) 内所有的水仙花数,每个数字占一行。 …

【C语言程序设计】C语言水仙花数,阿姆斯特朗数!

阿姆斯特朗数也就是俗称的水仙花数,是指一个三位数,其各位数字的立方和等于该数本身。 例如:153135333,所以 153 就是一个水仙花数。 求出所有的水仙花数。 算法思想 对于阿姆斯特朗数问题,根据水仙花数的定义&#x…

C语言编程练习:水仙花数

文章目录 题目描述思路结果 题目描述 水仙花数是指一个N位正整数(N>3)&#xff0c;它的每个位上的数字的N次幂之和等于它本身。例如:153 1353 33。本题要求编写程序&#xff0c;计算所有N位水仙花数。 输入格式: 输入在一行中给出一个正整数N(3<N<7 )。 输出格式: …

C语言:水仙花数(daffodil),求出三位数中所有水仙花数

水仙花数&#xff08;C语言&#xff09; 文章目录 水仙花数&#xff08;C语言&#xff09;前言一、题目二、解题思路代码运行结果 总结***根据水仙花数满足的条件找出需要求的对象&#xff0c;这里是各位上的位数。*** 前言 刘汝佳算法书《算法竞赛入门经典》第二章上机练习第…

C语言输出三位数的水仙花数

从100-999中找出符合条件的水仙花数 文章目录 从100-999中找出符合条件的水仙花数前言一、水仙花数是什么&#xff1f;二、C语言实现输出水仙花数1.解题思路2.实现过程 总结 前言 提示&#xff1a;找出符合条件的水仙花数&#xff0c;我们需要弄明白什么叫水仙花数&#xff0c…

c语言设计程序计算水仙花数,C语言水仙花数算法

打印出所有的“水仙花数”&#xff0c; 所谓“水仙花数”是指一个三位数&#xff0c;其各位数字立方和等于该数本身。例如&#xff1a;153是一个“水仙花数”&#xff0c;因为1531的三次方5的三次方3的三次方。 1.程序分析&#xff1a;利用for循环控制100-999个数&#xff0c;每…

水仙花数的实现(C语言)

问题描述&#xff1a;一个三位数&#xff0c;百位的立方加上十位的立方加个位的立方对于这个数本身。 即&#xff1a;abc a^3b^3c^3; 例如&#xff1a;153 1^35^33^3 求出所有的水仙花数&#xff1a; 这是一个将一个三位数的百位&#xff0c;十位&#xff0c;个位提出来&…

C语言输出所有的水仙花数

输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数&#xff0c;其各位数字立方之和等于该数本身。 例如&#xff0c;153是一个水仙花数&#xff0c;因为15315&#xff0b;3 解题思路&#xff1a;水仙花数的解题思路是把给出的某个三位数的个位、十位、百位分别拆分&#…

C语言实现求水仙花数

水仙花数是指一个数各位数字的立方和等于该数本身。 例如&#xff1a;153 13 53 33 求100–1000内的水仙花数。 代码如下&#xff1a; #include <stdio.h> #include <math.h>int main () {int i,j,k,n;printf("100-1000中的水仙花数字有:\n");for…

【必懂】C语言水仙花数题解

若是大一学子或者是真心想学习刚入门的小伙伴可以私聊我&#xff0c;若你是真心学习可以送你书籍&#xff0c;指导你学习&#xff0c;给予你目标方向的学习路线&#xff0c;无套路&#xff0c;博客为证。 前言 本专栏内容将会以轻松、简单的方式完成习题的解答&#xff0c;用…

C语言 水仙花数两种算法

两种方法&#xff1a;普通解法和巧妙解法 题目&#xff1a;打印出所有的“水仙花数”&#xff0c;所谓“水仙花数”是指一个三位数&#xff0c;其各位数字立方和等于该数本身。 例如&#xff1a;153是一个“水仙花数”&#xff0c;因为1531的三次方&#xff0b;5的三次方&#…

C语言编写水仙花数

C语言输出100~1000之间的水仙花数 水仙花数是什么&#xff1a; 水仙花数是指一个 3 位数&#xff0c;它的每个位上的数字的 3次幂之和等于它本身&#xff08;例如&#xff1a;1^3 5^3 3^3 153&#xff09;。 代码如下&#xff1a; #include<stdio.h> void main() { …