基于华为云的LeNet5的手写数字识别实验

举报
Alexlovar 发表于 2023/11/22 23:37:48 2023/11/22
【摘要】 实验目的本实验,基于华为云MindSpore在MNIST数据集上开发和训练一个LeNet5模型,并验证模型精度;了解如何使用MindSpore进行简单卷积神经网络的开发;了解如何使用MindSpore进行简单图片分类任务的训练;了解如何使用MindSpore进行简单图片分类任务的验证。实验环境ModelArts平台:Mindspore实验内容及分析数据集准备从华为云OBS中下载MNIST数据...
  • 实验目的

本实验,基于华为云MindSpore在MNIST数据集上开发和训练一个LeNet5模型,并验证模型精度

  • 了解如何使用MindSpore进行简单卷积神经网络的开发
  • 了解如何使用MindSpore进行简单图片分类任务的训练
  • 了解如何使用MindSpore进行简单图片分类任务的验证
  • 实验环境

ModelArts平台:Mindspore

  • 实验内容及分析
  1. 数据集准备

华为云OBS中下载MNIST数据集并解压数据集并上传至云服务器中MNIST是一个手写数字数据集,训练集包含60000张手写数字,测试集包含10000张手写数字,共10类。

 

  1. 导入实验环境

 

  1. 数据处理
  • 对数据进行预处理

 

2)展示数据集中的几张图片样式为32x32大小的手写图片

代码:

 

结果:

     

 

如图所示,显示了4张大小为32x32的手写数字。

  1. 定义模型

LeNet5模型结构如下图所示:

 

 

LeNet-5由7层组成,分别是:

 

C1:第一个卷积层,使用6个5x5的卷积核对输入图像进行卷积,得到6个28x28的特征图。卷积核的步长为1,没有使用零填充。

S2:第一个平均池化层,使用2x2的池化区域对C1层的特征图进行下采样,得到6个14x14的特征图。池化区域的步长为2。

C3:第二个卷积层,使用16个5x5的卷积核对S2层的特征图进行卷积,得到16个10x10的特征图。卷积核的步长为1,没有使用零填充。²

S4:第二个平均池化层,使用2x2的池化区域对C3层的特征图进行下采样,得到16个5x5的特征图。池化区域的步长为2。

C5:第三个卷积层,使用120个5x5的卷积核对S4层的特征图进行卷积,得到120个1x1的特征图。卷积核的步长为1,没有使用零填充。

F6:第一个全连接层,将C5层的120个特征图展平为一个长度为120的向量,并连接到一个由84个神经元组成的隐藏层。激活函数使用sigmoid函数。

Output:输出层,是一个由10个神经元组成的softmax分类器,用于对输入图像进行分类

 

为了适应LeNet-5模型的输入结构,我们需要将MNIST数据集中的28x28的图像扩展为32x32像素大小。

 

代码:

 

 

  1. 训练

使用MNIST数据集对上述定义的LeNet5模型进行训练。训练策略如下表所示,可以调整训练策略并查看训练效果,要求验证精度大于95%。

batch size

number of epochs

learning rate

optimizer

32

3

0.01

Momentum 0.9

 

代码:

 

结果及分析:

 

在三次训练后,精度达到了97.7%,达到了实验要求

 

  • 实验总结

本实验的主要收获如下:

1.了解了卷积神经网络的基本原理和结构,以及LeNet-5模型的具体设计和实现。

2.掌握了使用MindSpore框架构建和训练卷积神经网络模型的方法和流程。

3.学会了使用MindSpore提供的各种工具和函数进行数据处理,网络搭建,模型训练,评估和测试等操作。

4.学会了使用matplotlib进行结果可视化和分析。

本实验让我对卷积神经网络有了更深入的理解和掌握,我认识到卷积神经网络是一种强大的图像处理工具,它可以提取图像中的特征并进行分类。我也感受到了MindSpore框架的便捷和高效,它为我提供了丰富的模块和函数,让我可以快速地搭建和训练卷积神经网络模型。我觉得这是一次非常有意义和有趣的实验,它激发了我对深度学习的兴趣和热情,也为我打开了一个新的视野。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。