IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> LeNet5网络结构详解 -> 正文阅读

[人工智能]LeNet5网络结构详解

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()

在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:41:41  更:2022-04-07 22:42:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:26:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码