LeNet5网络结构详解

article/2025/7/3 16:48:21

文章目录

    • 1.论文地址:
    • 2.LeNet5网络结构:
    • 3.首先了解参数量和计算量之间的区别和计算:
      • (1)参数量(Params):
      • (2)计算量(FLOPS):
      • (3)举例说明:
    • 4.网络结构细讲:
      • (1)首先输入图像(灰度图):
      • (2)第一层卷积:
      • (3)第二层池化:
      • (4)第三层卷积:
      • (5)第四池化层:
      • (6)第一层全连接层:
      • (7)第二层全连接层:
    • 5.Tensorflow2.6.0实现网络结构:

1.论文地址:

http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

2.LeNet5网络结构:

在这里插入图片描述

3.首先了解参数量和计算量之间的区别和计算:

(1)参数量(Params):

参数量是指的网络中可以被学习的变量的数量,包括卷积核的权重weights,批归一化(BatchNormalization)的缩放参数γ,以及偏移系数β,虽然有些没有BatchNormalization层的也可能有偏置项bias,这些参数都是可以被学习的,也就是在训练模型开始被赋予初值,在训练过程当中通过链式法则不断的迭代更新,整个模型的参数量主要由卷积核的权重weights的数量决定,参数量越大,对计算机的运行内存也就越高,对硬件的设备也就要求越高,在同样准确率的情况下参数量的多少是一个网络结构重要的评价指标。

(2)计算量(FLOPS):

神经网络的前向推断过程基本上都是乘累加计算,所以它的计算量也是指前向推断过程中的乘加运行的次数,通常使用FLOPS(Floating Point Operations)表示。计算量越大,在同样条件下运行延时有就越长,尤其是在移动端/嵌入式这种资源受限的平台上想要达到实时性的要求就必须要求模型的计算量尽可能的低,这个还跟算子的密集程度相关。

(3)举例说明:

第一种标准卷积运算:
在这里插入图片描述
以上使用两个3x3的卷积对特征图大小为6x6x3进行卷积:K-卷积核大小;Cin-输入通道数;Cout-输出通道数;H-图片高度;W-图片宽度
参数量:(KxKxCinxCout)=333*2=54;
如果这里有偏置bias:(KxKxCin+1)xCout;
计算量:(KxKxCinxHxWxCout)=3x3x3x6x6x2=1944

如果有这里有偏置bias:(KxKxCin+1)xHxWxCout


拓展:
depthwise (深度分离卷积)卷积(其中:输入channel等于输出channel)
输入卷积:Win *Hin * Cin
卷积核:k * k
输出卷积:Wout * Hout * Cin
参数量:k * k * Cin
计算量:k * k * Cin * Wout * Hout


以上前置知识出处:
https://www.cnblogs.com/hejunlin1992/p/12978988.html


4.网络结构细讲:

(1)首先输入图像(灰度图):

大小:32x32x1
在这里插入图片描述


(2)第一层卷积:

在这里插入图片描述
采用六个5x5卷积核进行卷积:5x5x6–>28x28x6
Hout=(Hin+2xp-K)/s+1=(32+2x0-5)/1+1=28
Wout=(Win+2xp-K)/s+1=(32+2x0-5)/1+1=28
参数量:(5x5x1+1)x6=156(这里有bias偏置,一个卷积有一个bias)
计算量:(5x5x1+1)x28x28x6=122,304

在这里插入图片描述


(3)第二层池化:

在这里插入图片描述

这里使用2x2池化单元核进行降采样:2x2–>14x14x6
Hout=(Hin-K)/s+1=(28-2)/2+1=14
Wout=(Win-K)/s+1=(28-2)/2+1=14
参数量:(1+1)x6=12(这里有bias偏置,一个卷积有一个bias)
计算量:(2x2+1)x14x14x6=5880

在这里插入图片描述


(4)第三层卷积:

在这里插入图片描述在这里插入图片描述

采用16个5x5卷积核进行卷积:5x5x16–>10x10x16
Hout=(Hin+2xp-K)/s+1=(14+2x0-5)/1+1=10
Wout=(Win+2xp-K)/s+1=(14+2x0-5)/1+1=10
参数量:(5x5x3+1)x6 + (5x5x4 +1)x6 + (5x5x4 + 1) x 3 + (5x5x6+1)x1 = 1516(这里有bias偏置,一个卷积有一个bias)
计算量:1516x10x10=151,600

在这里插入图片描述


(5)第四池化层:

在这里插入图片描述

这里使用2x2池化单元核进行降采样:2x2–>5x5x16
Hout=(Hin-K)/s+1=(10-2)/2+1=5
Wout=(Win-K)/s+1=(10-2)/2+1=5
参数量:(1+1)x16=32(这里有bias偏置,一个卷积有一个bias)
计算量:(2x2+1)x5x5x16=122,304

在这里插入图片描述


(6)第一层全连接层:

计算量:(5x5x16+1)x120=48120
在这里插入图片描述
在这里插入图片描述


(7)第二层全连接层:

计算量:(1x1x120+1)x84=10164
在这里插入图片描述


5.Tensorflow2.6.0实现网络结构:

import os
import keras
import numpy  as  np
from tensorflow.keras import layersmodel_LeNet5=keras.Sequential([#定义输入layers.InputLayer(input_shape=(32,32,1)),#卷积层layers.Conv2D(6,kernel_size=[5,5],strides=[1,1],padding='valid'),layers.Activation('relu'),layers.MaxPool2D(pool_size=[2,2]),layers.Conv2D(16,kernel_size=[5,5],strides=[1,1],padding='valid'),layers.Activation('relu'),layers.MaxPool2D(pool_size=[2,2]),layers.Flatten(),layers.Dense(120),layers.Activation('relu'),layers.Dense(84),layers.Activation('relu'),layers.Dense(10),layers.Activation('softmax')
])
model_LeNet5.summary()

在这里插入图片描述


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

相关文章

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

从今天开始,带大家从LeNet5开始学习经典的网络模型。 一、LeNet-5 LeNet-5是LeNet系列的最终稳定版,它被美国银行用于手写数字识别,该网络有以下特点: 所有卷积核大小均为5*5,步长为1;所有池化方法为平均…

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的三次方&#…