ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

使用MindSpore训练手写数字识别模型

2022-08-07 16:31:06  阅读:135  来源: 互联网

标签:数字 训练 卷积 神经网络 手写 识别 MindSpore


MindSpore的“学习”过程

MindSpore当前已经部署在ModelArts的开发环境和训练环境中,同时提供了阈值算法供开发者直接使用,它的学习过程如下图所示,简单总结一下:

  1. 使用MindSpore提供的基本模块进行前线网络开发
  2. 对数据进行处理和增强以便得到更好的数据输入
  3. 利用前线网络构建训练模型,并进行模型保存和推理
    image

深度学习工作原理

与传统的机器学习使用简单模型执行分类等任务不同,此次训练我们使用深度神经网络作为训练模型,即深度学习。深度学习通过人工神经网络来提取特征,不同层的输出常被视为神经网络提取出的不同尺度的特征,上一层的输出作为下一层的输入,层层连接构成深度神经网络。
image

1994年,Yann LeCun发布了结合反向传播的卷积神经网络 LeNet, 其在手写数字识别领域效果远超其他模型。1998年,Yann LeCun等人构建的卷积神经网络LeNet-5在手写数字识别问题中取得成功 ,被誉为卷积神经网络的“Hello Word”。LeNet-5以及在此之后产生的变体定义了现代卷积神经网络的基本结构,可谓入门级神经网络模型。本次实践使用的模型正是LeNet-5。
image
LeNet-5由输入层、卷积层、池化层和全连接层组成。输入层用于输入数据;卷积层通过卷积运算对输入进行局部特征提取;池化层通过下采样的方式降低特征图的分辨率,从而降低输出对位置和形变的敏感度,同时还可降低网络中的参数和计算量;全连接层将局部特征通过权值矩阵组装成完整的图像,完成特征空间到真实类别空间的映射,最终的图像分类便是由全连接层完成的。有了这样一个神经网络后,我们还需要用大量数据集对它进行不断地训练,才能对输入数据有较为准确的预测结果,这一过程便依赖于华为自研的深度学习框架MindSpore。
image

数据集可视化:

MNIST数据集是目前手写数字识别领域使用最为广泛的公开数据集,大部分识别算法都会基于它进行训练和验证。MNIST数据集包含0~9这10种数字,每一种数字都包含大量不同形态的手写数字图片训练集,分为训练集和测试集。训练集涵盖6万张手写数字图片,测试级涵盖1万张手写数字图片。每一张图片皆为经过尺寸标准化的黑白图像,是28*28像素,像素值为0或者1的二值化图像。MNIST数据集的原始图像是黑白的,但在实际训练中使用数据增强后的图片能够获得更好的训练效果。本次训练所使用的经过数据增强的图片
image

Notes

手写数字识别,成为计算机视觉领域用于衡量算法表现的基准任务

MNIST数据集

  1. 包含0-9这十种数字,每一类包含大量不同形态的手写图片
  2. 训练集:60000 张手写数字图片
  3. 测试集:10000 张手写数字图片
  4. 每一张图片均为经过尺寸标准化的黑白图像:28 * 28像素,每一个像素值为 0或1

基于传统机器学习的识别方法:SIFT,SVM

基于深度学习的识别方法:LeNet-5

一个典型的卷积神经网络,由输入层、卷积层、池化层和全连接层组成。

  1. 输入层:数据输入层
  2. 卷积层:通过卷积进行局部特征提取
  3. 池化层:通过下采样降低特征图的分辨率,降低输出对位置和形变的敏感度,保留关键特性,减少参数和计算
  4. 全连接层:将局部特征通过权值矩阵组装成完整图像,完成特征空间到真实类别空间的映射,类似分类器

前向神经网络,损失函数

华为AI解决方案

  1. 应用使能
  2. 框架
  3. 芯片使能
  4. IP和芯片

Ascend、CANN、MindSpore、ModelArts

自动微分

  1. TensorFlow:图方法
  2. PyTorch:运算符重载
  3. MindSpore:源码转换

神经网络执行模式

  1. on-device模式
  2. 主从控制模式

数据增强算子,神经网络算子,神经网络计算图,算子间内存零拷贝,图循环控制

动态图与静态图

  1. 动态图执行模式:单算子/子图执行,灵活的开发调试
  2. 静态图执行模式:整图编译执行,高效的图编译优化,性能高

MindSpore的“学习”过程-(mindspore基本组件)

  1. 网络开发-(Tensor,Initializer,Cell,Operation)
  2. 数据处理-(Dataset)
  3. 构建模型-(Model,Cell,Operation)
  4. 模型训练-(Model,Dataset)
  5. 模型保存-(Callback)

mindspore基本组件

  1. Tensor - 基础的数据结构
  2. Initializer - 权重初始化模块
  3. Operation - mindspore基础计算单元
  4. Cell - 可复用的基础网络单元
  5. Model - 用于模型训练与推理的高阶API

数据处理Pipeline

  1. 加载
  2. shuffle
  3. map
  4. batch
  5. repeat

执行步骤

  1. 克隆github代码
git clone https://github.com/mindspore-ai/docs.git
  1. 进入到tutorials_code,可以看到lenet.py
cd docs/tutorials/tutorials_code
  1. 运行代码
python lenet.py
  1. 输出训练与测试结果:
    image
  2. 最后输出结果可视化:
    image

标签:数字,训练,卷积,神经网络,手写,识别,MindSpore
来源: https://www.cnblogs.com/chuqianyu/p/16559301.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有