卷积神经网络案例:LeNet-5手写数字识别

一、LeNet-5网络结构
1.1 LeNet-5介绍:
由Yann LeCun(杨立昆)于1998年提出的一种经典的卷积网络结构。
第一个成功应用于数字识别问题的卷积神经网络。
1.2 LeNet-5网络结构:共7层
输入层
卷积层
池化层
卷积层
池化层
全连接层
输出层
在这里插入图片描述
二、LeNet-5手写数字识别
2.1 MNIST数据集展示:mnist.load_data()加载数据集

from keras.datasets import mnist
(X0,Y0),(X1,Y1) = mnist.load_data()
print(X0.shape)
from matplotlib import pyplot as plt
plt.figure()
fig,ax = plt.subplots(2,5)
ax=ax.flatten()
for i in range(10):
    Im=X0[Y0==i][0]
    ax[i].imshow(Im)
plt.show();

在这里插入图片描述

2.2 数据预处理

from keras.utils import np_utils
N0=X0.shape[0];N1=X1.shape[0]
print([N0,N1])
X0 = X0.reshape(N0,28,28,1)/255
X1 = X1.reshape(N1,28,28,1)/255
YY0 = np_utils.to_categorical(Y0)
YY1 = np_utils.to_categorical(Y1)
print(YY1)

2.3 LeNet-5代码实现

#从Keras的layers中加载大量的模块用于构建CNN模型
from keras.layers import Conv2D,Dense,Flatten,Input,MaxPooling2D 
from keras import Model
#输入层
input_layer = Input([28,28,1])
x = input_layer
x = Conv2D(6,[5,5],padding = "same", activation = 'relu')(x) 
x = MaxPooling2D(pool_size = [2,2], strides = [2,2])(x)    
x = Conv2D(16,[5,5],padding = "valid", activation = 'relu')(x) 
x = MaxPooling2D(pool_size = [2,2], strides = [2,2])(x)
x = Flatten()(x)   
x = Dense(120,activation = 'relu')(x)
x = Dense(84,activation = 'relu')(x)
x = Dense(10,activation = 'softmax')(x)
output_layer=x
model=Model(input_layer,output_layer)
model.summary()  #给出LeNet-5的模型概要和参数情况

在这里插入图片描述

2.4 LeNet-5编译运行

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X0, YY0, epochs=10, batch_size=200, validation_data=[X1,YY1]) 

在这里插入图片描述

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LeNet-5是一种卷积神经网络,专门用于手写数字识别任务。它由著名的机器学习研究者Yann LeCun于1998年提出。LeNet-5网络结构包含七层,分为卷积层、池化层和全连接层。这个网络是用来处理图像的,因此输入层接收的是图像的像素信息。 LeNet-5网络的第一个卷积层使用的是S型激活函数,并且连接上一个2x2的最大池化层,该层对输入图像进行降采样,用池化操作减少了每个特征图的大小。接着第二个卷积层出现,同样连接一个最大池化层。这样的卷积和池化结构重复了两次,提取了图像的低层次特征信息。 在经过卷积和池化层后,LeNet-5采用了三个全连接层。这些全连接层连续地将卷积和池化层提取到的图像特征映射转换为更高层次的抽象特征。最后一层采用softmax函数作为激活函数,用于将各个特征映射映射到0-9的数字标签上。 LeNet-5使用的损失函数是交叉熵损失函数,用于评估预测结果和实际标签之间的差异。在训练过程中,通过反向传播算法对网络的参数进行更新,以减小损失函数的数值。通过反复迭代训练,网络可以逐渐优化,提高对手写数字的识别准确率。 总结来说,LeNet-5是一种经典的卷积神经网络,用于手写数字识别任务。其网络结构包含了卷积层、池化层和全连接层,通过不同层次的特征提取和抽象,可以有效地识别手写数字。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值