基于 Mindspore 框架与 ModelArts 平台的 MNIST 手写体识别实验
简介
实验包含 2部分:
- 基于 Mindspore 框架的模型本地训练及预测
- 基于 Modelarts 平台和 PyTorch框架的模型训练及部署
基于 Mindspore 框架的模型本地训练及预测
本例子会实现一个简单的图片分类的功能,整体流程如下:
- 处理需要的数据集,这里使用了 MNIST 数据集。
- 定义一个网络,这里我们使用 LeNet 网络。
- 定义损失函数和优化器。
- 加载数据集并进行训练,训练完成后,查看结果及保存模型文件。
- 加载保存的模型,进行推理。
- 验证模型,加载测试数据集和训练后的模型,验证结果精度
安装 MindSpore
如图:我是在自己电脑下载,所以下载Windows版本的,然后选CPU。python版本都可以选。
安装报错:
如果提示这个,一般是两个原因:
- 你的电脑之前有装其他版本的python,pip版本和python不对应。
- 卸载python重新装一个。
- 使用命令:
python3 -m pip install --upgrade pip
更新pip。
- 下载命令错误。安装MindSpore有两种pip命令,下面是另一种:
- 如果报错,可以试试不同的命令(亲测有效)。
MNIST 数据集
我们示例中用到的 MNIST 数据集是由 10 类 28*28 的灰度图片组成,训练数据集包含60000 张图片,测试数据集包含 10000 张图片。
MNIST 数据集下载页面:下载页面
将数据集解压分别存放到工作区的./MNIST_Data/train、./MNIST_Data/test 路径下。
其他一些报错
现在,使用PyCharm打开文件夹。
如果出现MindSpore找不到,
验证一下的你的Interpreter:检查下Package
提示需要下载easydict
直接pip 下载,或通过Package中下载。
实验步骤
- 打开项目,我使用的是PyCharm:
- 修改代码
- 修改默认的设备,这里我是Windows下的CPU版本,所以修改为CPU
增加eval.py和train.py需要的代码:
设定 loss 函数
设定优化器
编译形成模型
训练网络
增添lenet.py的代码。
运行train.py:
- 之后,生成了ckpy文件夹。这里保存的用于测试的模型。那么第十轮我们损失函数最小,我们自然就用第十轮的模型:
- 运行eval.py 。
基于 Modelarts 平台和 PyTorch 框架的模型训练及部署
先注册一个华为云账号。
然后按照教程:教程,一步一步完成即可。
基于 Mindspore 框架与 ModelArts 平台的 MNIST 手写体识别实验的更多相关文章
- 基于MIndSpore框架的道路场景语义分割方法研究
基于MIndSpore框架的道路场景语义分割方法研究 概述 本文以华为最新国产深度学习框架Mindspore为基础,将城市道路下的实况图片解析作为任务背景,以复杂城市道路进行高精度的语义分割为任务目标 ...
- R︱Softmax Regression建模 (MNIST 手写体识别和文档多分类应用)
本文转载自经管之家论坛, R语言中的Softmax Regression建模 (MNIST 手写体识别和文档多分类应用) R中的softmaxreg包,发自2016-09-09,链接:https:// ...
- 深度学习-mnist手写体识别
mnist手写体识别 Mnist数据集可以从官网下载,网址: http://yann.lecun.com/exdb/mnist/ 下载下来的数据集被分成两部分:55000行的训练数据集(mnist.t ...
- keras入门--Mnist手写体识别
介绍如何使用keras搭建一个多层感知机实现手写体识别及搭建一个神经网络最小的必备知识 import keras # 导入keras dir(keras) # 查看keras常用的模块 ['Input ...
- MindInsight:一款基于MindSpore框架的训练可视化插件
技术背景 在深度学习或者其他参数优化领域中,对于结果的可视化以及中间网络结构的可视化,也是一个非常重要的工作.一个好的可视化工具,可以更加直观的展示计算结果,可以帮助人们更快的发掘大量的数据中最有用的 ...
- 基于Keras 的VGG16神经网络模型的Mnist数据集识别并使用GPU加速
这段话放在前面:之前一种用的Pytorch,用着还挺爽,感觉挺方便的,但是在最近文献的时候,很多实验都是基于Google 的Keras的,所以抽空学了下Keras,学了之后才发现Keras相比Pyto ...
- Tensorflow中使用CNN实现Mnist手写体识别
本文参考Yann LeCun的LeNet5经典架构,稍加ps得到下面适用于本手写识别的cnn结构,构造一个两层卷积神经网络,神经网络的结构如下图所示: 输入-卷积-pooling-卷积-pooling ...
- 基于BootStrap框架构建快速响应的GPS部标监控平台
最近一个客户要求将gps部标平台移植到bootStrap框架作为前端框架,符合交通部796部标只是他们的一个基本要求,重点是要和他们的冷链云物流平台进行适配.我自己先浏览了客户的云物流平台的界面,采用 ...
- GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台
注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已不再提供源码升级的服务,因为目前我们开发的主流新版本是2015-2016年近一年推出的基于spri ...
- rtvue-lowcode:一款基于uniapp框架和uview组件库的开源低代码开发平台
rtvue-lowcode低代码开发平台 rtvue-lowcode一款基于uniapp框架和uview组件库的低代码开发平台,项目提供可视化拖拽编辑器,采用MIT开源协议,适用于app.小程序等项目 ...
随机推荐
- python安装与python、pip的环境变量配置
进入官网 在你常用的搜索引擎中输入 python官网 然后进入. 可直接点击本链接 python官网进入: 也可在浏览器地址栏输入www.python.org回车进入官网. 下载 将鼠标放到菜单栏中的 ...
- Sqlite管理工具
! https://zhuanlan.zhihu.com/p/375188242 SQLiteStudio 开源免费的一款sqlite数据库管理软件,支持windows,linux,macos 官网: ...
- 【一】飞桨paddle【GPU、CPU】安装以及环境配置+python入门教学
相关文章: [一]飞桨paddle[GPU.CPU]安装以及环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简 ...
- 【八】强化学习之DDPG---PaddlePaddlle【PARL】框架{飞桨}
相关文章: [一]飞桨paddle[GPU.CPU]安装以及环境配置+python入门教学 [二]-Parl基础命令 [三]-Notebook.&pdb.ipdb 调试 [四]-强化学习入门简 ...
- 分布式缓存-Redis集群
一.单点Redis弊端 1.数据丢失问题:Redis是内存存储,服务器重启可能会丢失数据 2.并发能力问题:单节点Redis并发能力虽然不错,但也无法满足如618这样的高并发场景 3.故障恢复问题:如 ...
- Mysql切割字符串
我们常常会遇到需要处理字段中字符串的需求,包括切割.拼接以及搜索等等,在这里介绍几个常用的切割字符串的函数,首先我们在表格中加入我们的实验字段值:https://www.cnblogs.com/Yao ...
- 小知识:grep过滤以#号开头的注释行 和 空行
xtts的配置文件,有很多注释不想直接去掉的情况下,想清楚的看到目前设置了哪些参数,可以用grep过滤查看: grep -vE '^#|^$' xtt.properties 效果如下: [oracle ...
- java 从零开始手写 RPC (02)-netty4 实现客户端和服务端
说明 上一篇代码基于 socket 的实现非常简单,但是对于实际生产,一般使用 netty. 至于 netty 的优点可以参考: 为什么选择 netty? http://houbb.github.io ...
- eclipse解决maven不自动下载jar包问题
今天在eclipse中import一个maven项目,由于我手工中断了相关pom.xml中配置的jar包下载. 导致项目找不到一些jar包.具体错误见下图: 原因就是有些jar包下载没有完成导致的. ...
- C++ 多线程的错误和如何避免(12)
std::async 在简单的 IO 上比 std::thread 更有优势 前提:如果我们只需要一些异步执行的代码,这样不会阻塞主线程的执行,最好的办法是使用 std::async 来执行这些代码. ...