LeNet-5(用于手写体字符识别)

发布时间:2024年01月12日

结构:输入的二维图像,先经过两次卷积层池化层,再经过全连接层,最后使用softmax分类作为输出层

每层有多个Feature Map(每个Feature Map有多个神经元)

Feature Map通过一种卷积滤波器提取输入的一种特征

各层参数详解:

1、INPUT层——输入层(本层不算LeNet的网络结构)

输入图像尺寸统一归一化为32*32

2、C1层——卷积层

输入图片:32*32

? ? ? 卷积核大小:5*5

? ? ? 卷积核种类:6

? ? ? 输出featuremap大小:28*28 (32-5+1)=28

? ? ? 神经元数量:28*28*6

? ? ? 可训练参数:(5*5+1) * 6(每个滤波器5*5=25个unit参数和一个bias参数,一共6个滤波器)

? ? ? 连接数:(5*5+1)*6*28*28=122304

3、S2层-池化层(下采样层)

输入:28*28

? ? ? 采样区域:2*2

? ? ? 采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid

? ? ? 采样种类:6

? ? ? 输出featureMap大小:14*14(28/2)

? ? ? 神经元数量:14*14*6

? ? ? 可训练参数:2*6(和的权+偏置)

? ? ? 连接数:(2*2+1)*6*14*14

? ? ? S2中每个特征图的大小是C1中特征图大小的1/4。

4、C3层——卷积层

输入:S2中所有6个或者几个特征map组合

? ? ? 卷积核大小:5*5

? ? ? 卷积核种类:16

? ? ? 输出featureMap大小:10*10 (14-5+1)=10

5、S4层——池化层(下采样层)

输入:10*10

? ? ? ?采样区域:2*2

? ? ? 采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置。结果通过sigmoid

? ? ? 采样种类:16

? ? ? 输出featureMap大小:5*5(10/2)

? ? ? 神经元数量:5*5*16=400

? ? ? 可训练参数:2*16=32(和的权+偏置)

? ? ? 连接数:16*(2*2+1)*5*5=2000

? ? ? S4中每个特征图的大小是C3中特征图大小的1/4

6、C5层——卷积层

? ? ?输入:S4层的全部16个单元特征map(与s4全相连)

? ? ?卷积核大小:5*5

? ? ?卷积核种类:120

? ? ?输出featureMap大小:1*1(5-5+1)

? ? ?可训练参数/连接:120*(16*5*5+1)=48120

7、F6层——全连接层

?输入:c5 120维向量

? ? ? 计算方式:计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。

? ? ? 可训练参数:84*(120+1)=10164

8、output层——全连接层

Output层也是全连接层,共有10个节点,分别代表数字0到9,且如果节点i的值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。假设x是上一层的输入,y是RBF的输出,则RBF输出的计算方式是:

GitHub:

GitHub - activatedgeek/LeNet-5: PyTorch implementation of LeNet-5 with live visualization

文章来源:https://blog.csdn.net/okimaru/article/details/135526130
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。