体验MindSpore新年新版本,前所未有的丝滑

本文档介绍了如何在Windows上安装MindSpore 1.1.0并使用LeNet模型进行图片分类的训练和推理。通过一键安装命令,体验了更为顺畅的安装过程。随后,详细展示了数据集的下载、预处理、网络定义、训练及推理的完整步骤,适合初学者快速上手MindSpore。
摘要由CSDN通过智能技术生成

转载地址:体验MindSpore新年新版本,前所未有的丝滑_MindSpore_昇腾论坛_华为云论坛

作者:胡琦

赶在2020年最后一天,Gitee明星开源项目全场景AI框架 MindSpore 也发布了 1.1 的版本,也意味着MindSpore迎来了新的起点新的征程。年底的MindCon极客周活动让我收获不少,新版本发布,怎么少得了Copy攻城狮的Hello World呢?

全新体验

继2020年3月, MindSpore 正式开源,到2020年9月正式发布1.0版本,MindSpore一步一个脚印,终于在2020年11月喜获 OSC 中国开源项目最佳人气项目奖。2021年,MindSpore发布了1.1版本,在新版本增加了统一IR格式MindIR实现一次训练多次部署;提供了全场景部署能力实现MindSpore端云互通;完善了PyNative模式,开发调试更友好;重新设计了调试器的检查能力,更加易用精准;新增了端侧训练特性,使得AI应用越用越精准……而对于Copy攻城狮来说,最喜爱的是教程大规模更新以及打通了一站式AI开发平台ModelArts,在手机上也能学习模型开发及训练;另一个喜爱的点是在Windows上有了更好的安装体验。今天就给大家简单跑一跑 MindSpore 1.1 的 HelloWorld -- 跑通图片分类 LeNet 模型,弥补之前在Windows上安装失败而放弃学习的遗憾!

安装

在新版下,Windows的安装体验似乎变得更加丝滑,一行命令安装,一行命令验证安装结果。安装使用的是官方文档提供的脚本,使用到了华为云自家的资源和清华pip镜像,这也许是我和清华唯一的交集:

pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.0/MindSpore/cpu/windows_x64/mindspore-1.1.0-cp37-cp37m-win_amd64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
# 注意参考官方文档的安装指南,确保安装依赖以及环境变量配置正确
# 本次选择选项 1.1.0 Windows CPU Python3.7.5 pip 

安装完毕之后还需校验一下本次安装是否成功:

python -c "import mindspore;print(mindspore.__version__)"
# 1.1.0

以上能正常输出MindSpore版本号,Windows上成功安装 MindSpore 1.1.0。接下来开始疯狂Copy代码吧!

实操

本次实操会基于Lenet实现一个简单的图片分类的功能,涉及到数据集的准备和处理、定义网络&损失函数&优化器、数据集加载、模型加载\保存\推理\验证等过程,是一些基本的操作,万丈高楼平地起,Copy攻城狮就从这平地开始吧!

数据集准备

数据集: http://yann.lecun.com/exdb/mnist/

能够自己动,绝不手动!我们通过python脚本来下载数据集。我们会引入文件下载和加压gzip文件必备的依赖;定义解压gzip文件的方法;定义下载进度的方法,下载完毕就解压文件最后移除;最后定义数据集下载主函数。

具体代码请查阅:https://gitee.com/mindspore/docs/blob/r1.1/tutorials/tutorial_code/lenet/utils/dataset.py

数据集的准备工作主要是为了生成如下的文件夹结构,test存放推理数据,train存放训练数据:

└─MNIST_Data
    ├─test
    │      t10k-images.idx3-ubyte
    │      t10k-labels.idx1-ubyte
    │
    └─train
            train-images.idx3-ubyte
            train-labels.idx1-ubyte

训练及推理

我们会用到一些python库和MindSpore中的一些模块,如 os 指定数据集路径,context模块配置运行需要的信息,dataset模块处理数据集如定义数据集、数据增强等,继承mindspore.nn.Cell定义神经网络,从mindspore.nn.loss引入损失函数等等,可以在文件开头引入我们所需要的依赖。然后使用mindspore.dataset模块进行数据集处理;接着定义Lenet网络、定义损失函数及优化器并对模型保存和训练网络进行配置。

具体代码请查阅:https://gitee.com/mindspore/docs/blob/r1.1/tutorials/tutorial_code/lenet/lenet.py

最后执行python命令进行训练,训练及推理完毕即可查看结果:

epoch: 1 step: 1866, loss is 0.1575163
epoch: 1 step: 1867, loss is 0.31445956
epoch: 1 step: 1868, loss is 0.043173585
epoch: 1 step: 1869, loss is 0.12036275
epoch: 1 step: 1870, loss is 0.12131009
epoch: 1 step: 1871, loss is 0.3510599
epoch: 1 step: 1872, loss is 0.078447945
epoch: 1 step: 1873, loss is 0.08664515
epoch: 1 step: 1874, loss is 0.15272087
epoch: 1 step: 1875, loss is 0.007838262
============== Starting Testing ==============
============== Accuracy:{'Accuracy': 0.9649439102564102} ==============

小结

整个流程走完不超过15分钟,在我16年的粗粮笔记本上居然也能流畅运行,尽管因为有代码容易跑起来,但真正想搞懂里边涉及的方方面面可不是一朝一夕就能实现的。路漫漫兮其修远,Copy攻城狮也将上下求索!

如有不当,欢迎指正!

联系作者:huqi@gpdi.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值