精华内容
下载资源
问答
  • LeNet5

    2020-08-23 20:49:07
    class LeNet5(nn.Module): def __init__(self): super(LeNet5,self).__init__() self.conv1 = nn.Sequential( nn.Conv2d(1,6,5,1,2) , nn.ReLU() , nn.MaxPool2d(2,2) ) self.conv2 = nn.Sequential( nn.Conv2d...
    import  torch.nn as nn
    
    class LeNet5(nn.Module):
        def __init__(self):
            super(LeNet5,self).__init__()
    
            self.conv1 = nn.Sequential( nn.Conv2d(1,6,5,1,2)   , nn.ReLU() , nn.MaxPool2d(2,2)   )
            self.conv2 = nn.Sequential( nn.Conv2d(6,16,5)      , nn.ReLU() , nn.MaxPool2d(2,2)   )
            self.fc1   = nn.Sequential( nn.Linear(16*5*5,120)  , nn.ReLU()                       )
            self.fc2   = nn.Sequential( nn.Linear(120,84)      , nn.ReLU()                       )
            self.fc3   = nn.Linear(84,10)
    
        def forward(self,pic):
            pic = self.conv1(pic)
            pic = self.conv2(pic)
            pic = pic.view(pic.size()[0],-1)
            pic = self.fc1(pic)
            pic = self.fc2(pic)
            pic = self.fc3(pic)
    
            return  pic

     

    展开全文
  • LeNet5.zip

    2020-07-10 16:12:15
    LeNet5.zip
  • LeNet5简述LeNet-5由深度学习三巨头之一的Yan LeCun提出,他也被称为卷积神经网络之父。LeNet-5是一种用于手写体字符识别的非常高效的卷积神经网络,可以算是卷积神经网络的开山之作了。虽然LeNet-5这个网络非常小,...

    LeNet5简述

    LeNet-5由深度学习三巨头之一的Yan LeCun提出,他也被称为卷积神经网络之父。LeNet-5是一种用于手写体字符识别的非常高效的卷积神经网络,可以算是卷积神经网络的开山之作了。

    虽然LeNet-5这个网络非常小,但是它是一个非常完整的卷积神经网络,包含了卷积层、pooling层、全连接层。

    643641d652a9d578595d81fb46d55342.png

    LeNet-5网络

    上图为LeNet-5的网络结构,除去输入层共有7层,每一层都包含可训练参数,并且由多个FeatureMap,每个FeatureMap都有多个神经元,并且通过一种卷积滤波器提取输入的一种特征。

    • 输入层

    输入图像的尺寸统一归一化为32x32,这要比MNIST数据集中最大的字母(28x28)还大,这样可以使潜在的明显特征(如笔画断续、角点)能够出现在最高层特征集的中心。需要注意的是,输入层不算在LeNet-5的网络结构中。

    • C1层-卷积层

    这一层使用6个大小为5x5的卷积核对输入图像进行第一次卷积运算,步长为1,得到6个C1特征图(6个大小为28x28的FeatureMap,根据输出矩阵大小计算公式r=(n-f+2p)/s+1可以求得(32-5+2x0)/1+1=28)。由于卷积核大小为5x5,每个核有1个bias,因此共有6x(5x5+1)=156个参数,156x28x28=122304个连接。可以看到,虽然有122304个连接,但只需要学习156个参数,这主要是通过权值共享实现的。

    • S2层-池化层

    这一层也叫做下采样层,第一次卷积之后紧接着就是池化运算,以一个2x2的区域下采样降低网络训练参数及模型的过拟合程度。由于使用2x2的核进行池化,步长为2,因此得到的S2是6个14x14的特征图((28-2+2x0)/2+1=14)。S2层池化层是对C1层中的2x2区域内的像素求和并乘以一个权重系数再加上一个偏置bias,最后将这个结果再做一次映射。此层共有6x(2x2+1)x14x14=5880个连接。

    • C3层-卷积层

    这一层是第二个卷积层,通过对S2的特征图特殊组合计算得到16个10x10的特征图具体计算如下:C3的前6个FeatureMap与S2层相连的3个,FeatureMap相连接,后面6个FeatureMap与S2层相连的4个FeatureMap相连接,后面3个FeatureMap与S2层部分不相连的4个FeatureMap相连接,最后一个FeatureMap与S2层的所有FeatureMap相连。卷积核大小依然为5x5,因此参数个数为:6x(3x5x5+1)+6x(4x5x5+1)+3x(4x5x5+1)+1x(6x5x5+1)=1516,共有1516x10x10=151600个连接。

    • S4层-池化层

    这一层是第二个池化层,仍然使用一个2x2的核进行池化,共16个FeatureMap,对C3层的16个10x10的特征图分别进行以2x2为单位的池化操作得到16个5x5的特征图。连接方式与S2层类似,共有16x(2x2+1)x5x5=2000个连接。

    • C5层-卷积层

    这一层是最后一个卷积层,卷积核大小依然是5x5,由于S4层的16个特征图大小也为5x5,与卷积核的大小相同,因此卷积后形成的特征图大小为1x1。这一层将产生120个卷积结果,且每一个都与S4层的16个特征图相连,因此共有(5x5x16+1)x120=48120个参数以及48120个连接。

    • F6层-全连接层

    这一层是全连接层,负责将C5的120个特征进行分类。F6层共有84个节点,对应于一个7x12的比特图。其中,-1表示白色,1表示黑色,使每个符合的比特图的黑白色对应一个编码。这一层共有(120+1)x84=10164个训练参数以及10164个连接。

    • Output层-全连接层

    这一层是输出层,也是一个全连接层,共有10个节点,分别对应0-9。

    LeNet5的PyTorch实现

    PyTorch官方教程中有关LeNet5的代码如下:

    1e2de7a917c473521ba56f79cdcf243b.png

    LeNet5的PyTorch实现

    以上代码基本按照LeNet5的网络结构编写,运行结果如下:

    adf807db9bdd8e290ebf5468513bdd39.png

    LeNet5运行结果

    输出的是LeNet5初始化时创建的2个卷积层和3个线性层,当调用前向传播函数forward( )时,会按照LeNet5的网络结构逐层递进,最终输出预测结果。

    展开全文
  • 完全实现lenet5全7层,为了更好的理解代码,需要提前了解下面的知识 1, lenet5的7层结构,包括每一层的含义和参数个数,重点是c2到s3层的部分连接原理 2, 了解卷积求导,pool求导,全连接层求导,softmax求导
  • lenet5 的theano实现

    2017-05-11 15:01:48
    lenet5 的theano实现
  • cifar10_lenet5.py

    2021-02-19 17:06:38
    在 Tensorflow 框架下利用 tf.Keras来构建 LeNet5 模型
  • 深度学习lenet5学习框架,包括训练,测试和验证三个文件
  • 在机器视觉,图像处理...虽然利用theano可以方便的实现LeNet5,但是不利于学习和理解卷积神经网络,所以最后会自己动手用Python实现一个简单的LeNet5,并尝试利用python的PyCUDA库进行加速。首先看LeNet5的结构,如...

    在机器视觉,图像处理领域,卷积神经网络取得了巨大的成功。本文将参考UFLDL和DEEPLEARNING.NET的教程,结合自己的理解,梳理一下卷积神经网络的构成以及其BP算法的求解。虽然利用theano可以方便的实现LeNet5,但是不利于学习和理解卷积神经网络,所以最后会自己动手用Python实现一个简单的LeNet5,并尝试利用python的PyCUDA库进行加速。

    首先看LeNet5的结构,如下图所示(来自Yann LeCun的论文)。

    对于卷积层,其计算公式为

    其中K表示由L层到L+1层要产生的feature的数量,表示“卷积核”,表示偏置,也就是bias,令卷积核的大小为5*5,总共就有6*(5*5+1)=156个参数,对于卷积层C1,每个像素都与前一层的5*5个像素和1个bias有连接,所以总共有156*28*28=122304个连接(connection)。

    对于LeNet5,S2这个pooling层是对C1中的2*2区域内的像素求和再加上一个偏置,然后将这个结果再做一次映射(sigmoid等函数),所以相当于对S1做了降维,此处共有6*2=12个参数。S2中的每个像素都与C1中的2*2个像素和1个偏置相连接,所以有6*5*14*14=5880个连接(connection)。

    除此外,pooling层还有max-pooling和mean-pooling这两种实现,max-pooling即取2*2区域内最大的像素,而mean-pooling即取2*2区域内像素的均值。

    LeNet5最复杂的就是S2到C3层,其连接如下图所示。

    前6个feature map与S2层相连的3个feature map相连接,后面6个feature map与S2层相连的4个feature map相连接,后面3个feature map与S2层部分不相连的4个feature map相连接,最后一个与S2层的所有feature map相连。卷积核大小依然为5*5,所以总共有6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516个参数。而图像大小为10*10,所以共有151600个连接。

    S4是pooling层,窗口大小仍然是2*2,共计16个feature map,所以32个参数,16*(25*4+25)=2000个连接。

    C5是卷积层,总共120个feature map,每个feature map与S4层所有的feature map相连接,卷积核大小是5*5,而S4层的feature map的大小也是5*5,所以C5的feature map就变成了1个点,共计有120(25*16+1)=48120个参数。

    F6相当于MLP中的隐含层,有84个节点,所以有84*(120+1)=10164个参数。F6层采用了正切函数,计算公式为,

    输出层采用了RBF函数,即径向欧式距离函数,计算公式为,

    以上就是LeNet5的结构。

    展开全文
  • Lenet5简记

    2018-08-14 11:18:00
    再次学习Lenet5,这里进行一个简单的记录 问题定义: 输入:32x32 灰度图片 输出:0-9 数字识别结果 总共7层(不包含输入,包含输出层): 输入-> 卷积->池化->卷积->池化->卷积->全...

    再次学习Lenet5,这里进行一个简单的记录

    问题定义:

        输入:32x32 灰度图片

        输出:0-9 数字识别结果

     

    总共7层(不包含输入,包含输出层):

      输入-> 卷积->池化->卷积->池化->卷积->全连接->全连接输出

     

    关键点:

       卷积核:为5x5

       padding:为0

       步长:为1

    留意点:

       1.由于输入是灰度图像,可以认为通道数为1

       2.在第二个卷积中,进行了不同feature的组合,第三个卷积中,进行全部累加组合(类似于后来的卷积,在后来的卷积中,组合变成了通道)

     

    (一)输入                                                                                               32x32

     

    (二)第一层卷积 6个5x5 卷积核   padding为0,步长为1                    6个 28x28     (参数个数  6x5x5+6)

     

    (三)第一层池化  2x2 池化,不重叠                                                    6个 14x14

     

    (四)第二层卷积 16个 5x5 卷积核   padding为0,步长为1                 16个10x10  (这里进行了 3个、4个和6个的组合,总共16种情况, 其中,3个组合的6种,4个组合的9种,6个组合的1种)对应的参数为  (3x6+4x9+6x1)x5x5+16

     

    (五)第二层池化 2x2 池化,不重叠                                                     16个 5x5

     

    (六)第三层卷积  120个 5x5 卷积核   padding为0,步长为1              120个1x1   (这里中,每一个得到的1x1值都是16个卷积核卷积后加上1个偏置项得到的,所以参数个数为  (16x5x5+1)x120 )

     

    (七)全连接1                                                                                         84              (参数 120x84+84)

     

    (八)全连接2 这里原始论文使用rbf 单元 yi=sum((xj-wij)^2)            10               (参数  84x10)

     

       

     

    在多说一点:

      在第二层卷积中,会发现进行了组合,但又不是想第三层卷积中的完全组合。原论文中对这种做法的原因进行了2点解释:

               a.为了使得连接数可控,个人理解还是为了减少参数

               b.为了打破对称性,让不同的feature map学习到一个不同的特征(因为他们的输入数据是不一样的)

     

     

     

     

     

    上述大概就是Lenet5的一个简记了,对应的图解析,网上也很多,这里就简单贴一个:

    https://blog.csdn.net/happyorg/article/details/78274066

    可以看看上面的图

    转载于:https://www.cnblogs.com/youyouzaLearn/p/9473473.html

    展开全文
  • tensorflow实现lenet5

    2020-01-18 16:18:26
    lenet5 结构 及 pytorch、tensorflow、keras(tf)、paddle实现 mnist手写数字识别​​​​​​​ 环境 python3.6,tensorflow-gpu 1.12.0 代码 # -*- coding: utf-8 -*- # @Time : 2020/1/18 14:59 # @...
  • 参考博客 LeNet5简单理解 LeNet5基本实现 具体代码在GitHub上有很多。
  • LeNet5网络模型

    2020-06-03 22:11:39
    LeNet5网络模型是卷积神经网络的开创性模型,提取了三大思想 1.局部感知 2.下采样 3.权值共享 LeNet5共分为7层; 第一层:输入层:输入为3232的图像 C1层(卷积层):使用6个大小为55的卷积核对输入图像进行卷积操作...
  • LeNet5的深入解析

    万次阅读 多人点赞 2016-12-09 11:35:53
    论文:Gradient-based-learning-applied-to-document-recognition参考:http://blog.csdn.net/strint/article/details/44163869LeNet5 这个网络虽然很小,但是它包含了...这里我们对LeNet5进行深入分析,并由此看看 Caf
  • CNN在近几年的发展历程中,从经典的LeNet5网络到最近号称最好的图像分类网络EfficientNet,大量学者不断的做出了努力和创新。本讲我们就来梳理经典的图像分类网络。计算机视觉的三大任务自从神经网络和深度学习方法...
  • 手写字体识别模型LeNet5诞生于1994年,是最早的卷积神经网络之一。LeNet5通过巧妙的设计,利用卷积、参数共享、池化等操作提取特征,避免了大量的计算成本,最后再使用全连接神经网络进行分类识别,这个网络也是最近...
  • Lenet5网络程序

    2020-12-28 11:29:19
    Lenet5网络 定义初始化网络: 神经网络的典型处理如下: 1.定义可学习参数的网络结构(堆叠各层和层的设计); 2.数据集输入; 3.对输入进行处理(由定义的网络层进行处理),主要体现在网络的前向传播; 4....
  • LeNet5介绍LeNet-5是一种高效的卷积神经网络,在论文《Gradient-Based Learning Applied to Document Recognition》中 有详细的解释,它在大家熟知的手写数字识别项目中它得到广泛地使用。该网络一共有7层,依次为:...
  • tensorflow lenet5

    2018-10-23 15:20:17
    使用tensorflow实现lenet网络,使用的事cifar10这个数据集。
  • GLES lenet5 does not work

    2020-12-08 18:06:20
    I am testing non-graph lenet5 example (i.e., LeNet5Network.h) I compiled with -DARM_COMPUTE_GC flag with cmake. when all datatype are CL<em> it works and if all datatype are GC</em> and GLES lenet5 ...
  • pytorch实现lenet5

    2020-01-18 14:57:59
    lenet5 结构 及 pytorch、tensorflow、keras(tf)、paddle实现 mnist手写数字识别​​​​​​​ 环境 python3.6,torch 1.0.1, torchvision 0.4.0, torchsummary 1.5.1 代码 # -*- coding: utf-8 -*- # @...
  • keras实现lenet5

    2020-01-18 16:45:20
    lenet5 结构 及 pytorch、tensorflow、keras(tf)、paddle实现 mnist手写数字识别 环境 python3.6, keras2.2.4, tensorflow-gpu 1.12.0 代码 # -*- coding: utf-8 -*- # @Time : 2020/1/18 16:20 # @Author ...
  • paddle实现lenet5

    2020-01-19 11:06:57
    lenet5 结构 及 pytorch、tensorflow、keras(tf)、paddle实现 mnist手写数字识别​​​​​​​ 环境 python3.6,paddlepaddle-gpu1.5.2.post107 代码 # -*- coding: utf-8 -*- # @Time : 2020/1/18 16:49 # ...
  • CNN LeNet5分步理解

    2019-04-06 23:01:59
    CNN LeNet5分步理解 前言 LeNet-5出自论文Gradient-Based Learning Applied to Document Recognition,是一种用于手写体字符识别的非常高效的卷积神经网络。 上图是LeNet-5识别数字3的过程。 1、INPUT层-输入...
  • tf实现LeNet5

    2019-11-28 20:39:47
    加载数据 # encoding: utf-8 ...# LeNet5的tf的实现 # 2019-11-28 from tensorflow.examples.tutorials.mnist import input_data import tensorflow as tf mnist = input_data.read_data_sets('MNIST_data/'...
  • 基于卷积神经网络的图像识别,网络结构为lenet5,在训练集上的正确率可以达到90+,测试集正确率在60-70%。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,088
精华内容 1,235
关键字:

lenet5