LeNet5网络结构详解 您所在的位置:网站首页 池化层参数计算 LeNet5网络结构详解

LeNet5网络结构详解

#LeNet5网络结构详解| 来源: 网络整理| 查看: 265

文章目录 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 layers model_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()

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有