浅谈LeNet-5

article/2025/7/3 8:52:44

浅谈LeNet-5

基于Tensorflow的实现欢迎查看我下一篇博客Tensorflow实战 LeNet-5神经网络进行手写体数字识别

一、LetNet是什么?

LetNet是一种入门级的神经网络模型,是一个简单的卷积神经网络,可以用来做手写体识别。

img

下面我将以上图为例简单介绍一下LetNet神经网络的工作流程。

  • 输入层

    读入需要被网络处理的图片,这里图片的大小为32*32的黑白图片

  • Conv1层

    图片大小:32x32,通道数为1

    filter(卷积核):5x5x6(大小5x5,个数6)

    步长:1

    输出:28x28x6

    采用的卷积方式:vaild

  • S2层

    图片大小:28x28

    池化窗口:2x2

    个数:6

    输出:14x14x6

  • Conv3层

    图片大小:14x14,通道数为6

    filter(卷积核):5x5x16(大小5x5,个数16)

    步长:1

    输出:10x10x16

    采用的卷积方式:vaild

  • S4层

    图片大小:10x10

    池化窗口:2x2

    个数:16

    输出:5x5x6

  • Conv5层

    图片大小: 5x5,通道数为16

    filter(卷积核):5x5x120(大小5x5,个数120)

    步长:1

    输出:1x1x120

    采用的卷积方式:vaild

  • F6层

    输入向量维度:[1,120]

    权重参数的维度:[120,84]

    计算方式:输入的向量与权重参数之间用矩阵点积的方式进行运算,得到一个输出维度为[1,86]的向量

  • OUTPUT层

    输入向量维度:[1,84]

    权重参数的维度:[84,10]

    计算方式:输入的向量与权重参数之间用矩阵点积的方式进行运算,得到一个输出维度为[1,10]的向量

附经过卷积后输出维度大小的公式:

N: 输入的维度、F:卷积核大小、stride: 步长、pad: 扩充边缘
o u t p u t = ( N + 2 × p a d − F ) s t r i d e + 1 output=\frac{(N+2 \times pad-F)}{stride}+1 output=stride(N+2×padF)+1

二、使用TensorFlow实现卷积、池化

1、卷积

import tensorflow as tf#定义一个卷积层
def conv2d(x,W):return tf.nn.conv2d(input, filter, strides, padding)
'''
1.使用TensorFlow定义一个卷积层时,需要使用的函数就是tf.nn.conv2d
该函数需要使用到四个参数。
input:很明显,这个参数就是要填入我们需要进行卷积操作的变量。
filter:卷积核,我们需要定义好卷积核的大小,通道数和个数。
strides:用来定义卷积核每次上下左右移动的步长
padding:决定此处卷积将采用哪种方式。2.我在定义卷积层时采用函数的形式,conv2d函数需要传进来两个参数x,W,
分别对应input,和filter。值得注意的时,filter的维度要和input相对应才行。
例如我想对一组彩色图片进行卷积操作.
则假设x的维度为x=[10,128,128,3]。
在这里,x.shape[0]表示的时图片的个数,即十张。
x.shape[1]和x.shape[2]表示图片大小为128x128。
x.shape[3]表示图片的通道数,即3。3.x维度确定好后,W(即filter)的维度也可以确定下来。
W=[5,5,3,16]
在这里,W.shape[0]和W.shape[1]表示的卷积核的大小为5x5。
W.shape[2]表示卷积核的通道数,一定要注意,在定义卷积核通道数时,要和输入的图片的通道数相一致才行,既输入图片通道数为m,则卷积核的通道数也要为m
x.shape[3]表示卷积核的个数,既16。每次卷积有多少个卷积核,则经过卷积后输出的图片通道数就有多少。4.关于参数strides
strides=[a,b,c,d]这四个变量中,a和d一般情况下都设置为1。
b,c分别表示在卷积时,卷积核每次左右移动步长为b,上下移动步长为c
一般定义是strides=[1,1,1,1]5.关于参数padding
在卷积里面padding的方式有两种,为"SAME"和”VALID"
使用SAME时,经过卷积后输出的图片大小和输入的大小一致。
使用VALID时,经过卷积后输出的图片大小会小于输入的图片大小,而输出的图片大小具体为多少,可以根据我上面提供的公式进行计算。
'''

2、池化

import tensorflow as tf#最大池化层
def max_pool_2x2(x):return tf.nn.max_pool(value, ksize, strides, padding)
"""
1.在使用TensorFlow实现池化是,我选择用tf.nn.max_pool这个函数,最大池化。
最大池化就是在池化窗口中,选取里面最大值出来。把其他值给舍去。tf.nn.max_pool这个函数
也一样需要四个参数,分别为value,ksize,strides,padding。
value:需要进行池化的输入。
ksize:池化窗口,是一个四维向量。
strides:进行池化时,池化窗口上下左右移动的步长。
padding:和卷积类型,决定池化的方式。2.我在定义定义池化层的时候也同样采用了函数的形式,max_pool_2x2(x)
x很明显就是需要进行池化的输入,应该放在参数value的位置。
假设我想对一组彩色图片进行池化操作。图片数量为10.
则x=[10,128,128,3].
在这里,x.shape[0]表示的时图片的个数,即十张。
x.shape[1]和x.shape[2]表示图片大小为128x128。
x.shape[3]表示图片的通道数,即3。3.ksize
上面说了,ksize是一个思维向量。
ksize=[a,h,w,b] a和b分别表示batch和channel,因为一般情况下我们不在batch和channel上面进行池化操作,所以a和b的值一般设为1。h和w就是池化窗口的大小了。4.strides
同卷积一样
strides=[a,b,c,d]这四个变量中,a和d一般情况下都设置为1。
b,c分别表示在卷积时,卷积核每次左右移动步长为b,上下移动步长为c
一般定义是strides=[1,1,1,1]5.关于参数padding
在池化里面padding的方式有两种,为"SAME"和”VALID"
具体含义见下图所示。
"""

(注:该图片从【深度学习框架TensorFlow】零基础入门|应用 视频中获取)
(注:该图片从【深度学习框架TensorFlow】零基础入门|应用 视频中获取)

(如有错误欢迎指正)

若对你有所帮助,点赞、关注点一点


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

相关文章

卷积神经网络CNN与LeNet5详解(可训练参数量、计算量、连接数的计算+项目实战)

文章目录 神经网络CNN卷积神经网络CNN的由来局部感受野共享权重池化CNN的结构光栅化 LeNet5详解LeNet5-C1层LeNet5-S2层LeNet5-C3层LeNet5-S4层LeNet5-C5层LeNet5-F6层LeNet5-OUTPUT层计算公式 LeNet5实战定义网络模型初始化模型参数训练测试准确率预测结果 神经网络 神经网络可…

lenet5实现

Pytorch环境下搭建lenet5网络实现手写数字识别 (文章采用cuda9.0cudnn7.4pytorch1.6环境) 数据集选用EMNIST dataset中的手写数据集,参考链接如下: 数据集下载地址 代码部分参考S.E作者的pytorch实现手写英文字母识别&#xff0…

从零开始的神经网络构建历程(三,LeNet5复现)

前两篇博文主要介绍了torch如何构建全连接前馈神经网络,本篇博客主要针对经典卷积神经网络LeNet5进行复现。 卷积神经网络的基本结构 相信不少人都看过不少博客,也都对卷积神经网络的大致结构了解一点,这里本人站在神经元的角度来描述卷积神…

卷积神经网络LeNet5结构

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

Lenet5(1998)

先读 https://blog.csdn.net/zhangjunhit/article/details/53536915 https://blog.csdn.net/qianqing13579/article/details/71076261 第三个卷积层,S2 6个1010的特征映射,C3是16个1010的特征映射,怎么做的呢? 关注C3层 Why not …

LeNet5的论文及理解

LeNet5网络的来源:Lcun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324. 1. 卷积神经网络(Convolutional Neural Network,CNN)基…

Pytorch搭建LeNet5网络

本讲目标:   介绍Pytorch搭建LeNet5网络的流程。 Pytorch八股法搭建LeNet5网络 1.LeNet5网络介绍2.Pytorch搭建LeNet5网络2.1搭建LeNet网络2.2测试LeNet网络输出2.3下载数据集2.4加载并配置网络2.5训练并保存网络2.6测试图片 1.LeNet5网络介绍 借鉴点:…

HLS:卷积神经网络LeNet5的实现与测试

目录 一、引言二、LeNet5的学习三、数学知识补充四、HLS代码设计五、仿真综合与优化六、Zynq平台搭建测试七、一些注意点八、文献时间线与后续工作 一、引言 1、开发环境。 Windows10、Vivado2018.2、Vivado HLS与Xilinx SDK。 2、LeNet5概述。 1994年,CNN网络&…

卷积神经网络(一):LeNet5的基本结构

在机器视觉,图像处理领域,卷积神经网络取得了巨大的成功。本文将参考UFLDL和DEEPLEARNING.NET的教程,结合自己的理解,梳理一下卷积神经网络的构成以及其BP算法的求解。虽然利用theano可以方便的实现LeNet5,但是不利于学…

LeNet5网络结构详解

文章目录 1.论文地址:2.LeNet5网络结构:3.首先了解参数量和计算量之间的区别和计算:(1)参数量(Params):(2)计算量(FLOPS):&#xff08…

经典网络模型介绍系列——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) 内所有的水仙花数,每个数字占一行。 …