MindSpore手写数字识别初体验,深度学习也没那么神秘嘛
摘要:想了解深度学习却又无从下手,不如从手写数字识别模型训练开始吧!
深度学习作为机器学习分支之一,应用日益广泛。语音识别、自动机器翻译、即时视觉翻译、刷脸支付、人脸考勤……不知不觉,深度学习已经渗入到我们生活中的每个角落,给生活带来极大便利。即便如此,依然有很多人觉得深度学习高深莫测、遥不可及,的确,它有深奥之处,非专业人士难以企及,但也有亲和力十足的一面,让没有基础的小白也能轻松上手,感受深度学习的魅力,接下来要介绍的手写数字识别模型训练正是如此。
手写数字识别初探
手写数字识别是计算机视觉中较为简单的任务,也是计算机视觉领域发展较早的方向之一,早期主要用于银行汇款、单号识别、邮政信件、包裹的手写、邮编识别等场景,目前手写数字识别已经达到了较高的准确率,得到大规模的推广与应用。虽然手写数字识别本身的领域比较狭窄,实用性有限,但是在它基础上发展起来的卷积神经网络等计算机视觉技术早已应用在更为复杂的任务中,因此,手写数字识别也成为计算机视觉领域衡量算法表现的一个基准任务。所以,通过这一实践场景来了解神经网络开发和训练,可谓再好不过了。如何使用深度学习框架MindSpore进行模型开发与训练?又如何在ModelArts平台训练一个可以用于识别手写数字的模型呢?让我们来一探究竟吧。
数据集的选择与准备
机器学习中的传统机器学习和深度学习都是数据驱动的研究领域,需要基于大量的历史数据对模型进行训练,再使用模型对新的数据进行推理和预测,因此数据是机器学习中的关键要素之一。
MNIST数据集是目前手写数字识别领域使用最为广泛的公开数据集,大部分识别算法都会基于它进行训练和验证。MNIST数据集包含0~9这10种数字,每一种数字都包含大量不同形态的手写数字图片训练集,分为训练集和测试集。训练集涵盖6万张手写数字图片,测试级涵盖1万张手写数字图片。每一张图片皆为经过尺寸标准化的黑白图像,是28*28像素,像素值为0或者1的二值化图像。MNIST数据集的原始图像是黑白的,但在实际训练中使用数据增强后的图片能够获得更好的训练效果。
本次训练所使用的经过数据增强的图片
基于深度学习的识别方法
与传统的机器学习使用简单模型执行分类等任务不同,此次训练我们使用深度神经网络作为训练模型,即深度学习。深度学习通过人工神经网络来提取特征,不同层的输出常被视为神经网络提取出的不同尺度的特征,上一层的输出作为下一层的输入,层层连接构成深度神经网络。
深度学习工作原理
1994年,Yann LeCun发布了结合反向传播的卷积神经网络 LeNet, 其在手写数字识别领域效果远超其他模型。1998年,Yann LeCun等人构建的卷积神经网络LeNet-5在手写数字识别问题中取得成功 ,被誉为卷积神经网络的“Hello Word”。LeNet-5以及在此之后产生的变体定义了现代卷积神经网络的基本结构,可谓入门级神经网络模型。本次实践使用的模型正是LeNet-5。
LeNet-5结构
LeNet-5由输入层、卷积层、池化层和全连接层组成。输入层用于输入数据;卷积层通过卷积运算对输入进行局部特征提取;池化层通过下采样的方式降低特征图的分辨率,从而降低输出对位置和形变的敏感度,同时还可降低网络中的参数和计算量;全连接层将局部特征通过权值矩阵组装成完整的图像,完成特征空间到真实类别空间的映射,最终的图像分类便是由全连接层完成的。有了这样一个神经网络后,我们还需要用大量数据集对它进行不断地训练,才能对输入数据有较为准确的预测结果,这一过程便依赖于华为自研的深度学习框架MindSpore。
MindSpore的“学习”过程
MindSpore当前已经部署在ModelArts的开发环境和训练环境中,同时提供了阈值算法供开发者直接使用,它的学习过程如下图所示,简单总结一下:
1. 使用MindSpore提供的基本模块进行前线网络开发
2. 对数据进行处理和增强以便得到更好的数据输入
3. 利用前线网络构建训练模型,并进行模型保存和推理
说起来可能平淡无奇,但是实验终究需要自己亲自动手才能体会其中的无限乐趣。
看到这里,想必各种背景知识和原理大家已经略知一二,如果你已经跃跃欲试,那就快来华为云学院学习微认证课程《使用MindSpore训练手写数字识别模型》吧。对了,悄悄告诉你,这个实验现在还是免费的哟,来华为云学院沙箱实验室就能即刻体验。从原理到实践,带你全方位了解手写数字模型训练全过程,快速上手深度学习,速来!
→点击直达华为云学院,get更多新技能
本文分享自华为云社区《MindSpore手写数字识别初体验,深度学习也没那么神秘嘛》,原文作者:学院小助 。
点击关注,第一时间了解华为云新鲜技术~
MindSpore手写数字识别初体验,深度学习也没那么神秘嘛相关推荐
- MindSpore手写数字识别体验
文章目录 1. 环境准备 2. 安装minspore及其套件 3. 程序撰写 4. 总结 今天带大家体验一下 MindSpore 这个 AI 框架来完成手写数字识别的任务 1. 环境准备 使用Anac ...
- CVNLP基础6之手写数字识别代码体验
文章目录 总流程(思路)预览 x是输入的图片y是图片对应的label 关于训练数据集的说明 搭建计算网络层 计算损失值loss 优化损失值loss(minimize loss) 手写数字初体验代码 代 ...
- 手写公式识别 :基于深度学习的端到端方法
本文简要介绍2018年5月被TMM录用论文"Track,Attend and Parse (TAP): An End-to-end Framework for Online Handwrit ...
- 基于深度学习的手写数字识别算法Python实现
摘 要 深度学习是传统机器学习下的一个分支,得益于近些年来计算机硬件计算能力质的飞跃,使得深度学习成为了当下热门之一.手写数字识别更是深度学习入门的经典案例,学习和理解其背后的原理对于深度学习的理解有 ...
- 【深度学习】手写数字识别Tensorflow2实验报告
实验一:手写数字识别 一.实验目的 利用深度学习实现手写数字识别,当输入一张手写图片后,能够准确的识别出该图片中数字是几.输出内容是0.1.2.3.4.5.6.7.8.9的其中一个. 二.实验原理 ( ...
- TF2.0深度学习实战(一):分类问题之手写数字识别
前言: 本专栏将分享从零开始搭建神经网络的学习过程,力争打造最易上手的小白教程.在这过程中,我将使用谷歌TensorFlow2 框架逐一复现经典的卷积神经网络:LeNet-5.AlexNet.VGG系 ...
- minst手写数字识别(带界面)
minst手写数字识别(带界面) 目录 minst手写数字识别(带界面) 一.项目简介 二.项目结构及环境 三.网络结构介绍 四.程序文件介绍 五.使用介绍 六.源代码获取 一.项目简介 1)概述:手 ...
- 《神经网络和深度学习》系列文章五:用简单的网络结构解决手写数字识别
出处: Michael Nielsen的<Neural Network and Deep Learning>,点击末尾"阅读原文"即可查看英文原文. 本节译者:哈工大S ...
- 使用Dl4j训练的一个手写数字识别软件
DL4J使用之手写数字识别 最近一直在学习深度学习,由于我是Java程序员出身,就选择了一个面向Java的深度学习库-DL4J.为了更加熟练的掌握这个库的使用,我使用该库,以MNIST(http:// ...
最新文章
- springMVC web项目转springboot web项目的杂谈
- macbook oracle 工具,Navicat for Oracle Mac 四种实用工具
- CAD自控lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图
- Kubernetes插件部署
- 第一代计算机主要用于科学计算和数据处理,计算机一级第一章练习题.doc
- SQL Serever学习4
- bootstrap中让图片自适应不同的分辨率的方法
- matlab中ifelse能嵌套吗,MATLAB嵌套if-else语句
- 清华大学计算机学院教授简介,清华大学计算机科学与技术系导师教师师资介绍简介-王继龙...
- ubuntu+网易云安装
- 微信支付/支付宝指纹支付原理
- 搭建本地以图搜图服务
- java 制作甘特图,看我如何用简单的步骤打造出复杂的web甘特图
- nyoj 吃土豆 234 (双层DP)
- 限时免费领取育碧75元游戏《纪元Anno1404:历史版》
- java毕业设计基于的高校教室申请管理系统mybatis+源码+调试部署+系统+数据库+lw
- BUUCTF中的reverse1
- 最强大的PDF编辑器Adobe Acrobat DC Pro
- EPICS记录参考--计算输出记录(calcout)
- ByteBuff常用方法,使用
热门文章
- Bootstrap 响应式设计
- es6 调用 Iterator 接口的场合
- binwalk 提取bootimg_boot.img格式文件结构解析
- log日志java web_Javaweb项目中使用Log4j记录日志
- 同级中断可以嵌套吗_这可能是最通俗易懂的方式讲解ARM中断原理以及中断嵌套...
- 二分- Count on Canton
- Oracle解锁scott账号
- Atitit xml框架类库选型 attilax总结
- js 把对象按照属性名的字母顺序进行排列
- [动态规划] uestc oj A - 男神的礼物