张小白教你在WSL的Ubuntu 18.04下体验TinyMS 0.3.1(LeNet网络)

举报
张辉 发表于 2022/01/31 18:07:02 2022/01/31
【摘要】 WSL2上体验TinyMS 0.3.1

Micro,Tiny,Mini,Lite是一群好搭档(傻傻分不清楚)。如果没有特别跟你说,一般情况下你都不知道带这些单词的词组到底是什么意思。比如MindSpore Lite是MindSpore的端边AI引擎,TensorFlow Lite却是TF在移动设备和嵌入式设备的轻量级解决方案。这两个反倒是要对标的。那么TinyMS,作为Tiny、Modular、Simple的缩写,对标的却是Keras——Tensorfow的高阶API。当然,同时被华为TinyMS对标的是Fastai——PyTorch的高阶API。我们一直知道的是,MindSpore的移植最常见的就是从TF和PyTorch迁移,那么Keras和Fastai这对胖哥俩,自然一个都少不了。

搞清楚TinyMS的定位了,就不得不提到几个著名的MindSpore女神,一个是来自数学系的夏洛特77(曼sir跑)小姐姐,一个是来自梯度森林会剧场的喂~你好(HelloWay)小姐姐。近期两人都很少在公共培训场合露面,特别是作为运营大神的胡大大,居然专心去做TinyMS去了。而在21天MindSpore实战营疯狂输出课程的何芦微老师,明明可以靠颜值斩获最佳短剧女一号,非要靠技术。在两人(以及一群人)的刻苦钻研下,TinyMS才横空出世。

闲话少说,我们就看看TinyMS该怎么玩吧。

在玩转TinyMS之前,得先去B站看下曼sir的保姆级教程(一共10集,目前已推出了5集):

【保姆级教程】EP01-最适合小白的深度学习入门课程来了!
https://www.bilibili.com/video/BV1MB4y1P79S

【保姆级教程】EP02-计算机是如何识别图像的?+TinyMS三种安装方式详解
https://www.bilibili.com/video/BV18v41187fX

【保姆级教程】EP03-30min速成Shell脚本命令
https://www.bilibili.com/video/BV1vy4y1b7jh

【保姆级教程】EP04-30min速成Python指南(上)| MindSpore高阶API工具TinyMS系列教程
https://www.bilibili.com/video/BV1Tp4y1b7UG

【保姆级教程】EP05-30min速成Python指南(下)| MindSpore高阶API工具TinyMS系列教程
https://www.bilibili.com/video/BV1XS4y1Z7yp

其实看了第二段,就可以安装TinyMS了。

当然,我们还是要结合官网:https://tinyms.readthedocs.io/zh_CN/v0.3.1/quickstart/install.html

张小白还是用WSL2(Ubuntu 18.04)来安装吧。

这上面已经安装好了Anaconda,但是Python是3.8版本

所以用conda建一个python 3.7.5的环境:

按Y继续:

确认了3.7.5的大蟒蛇眼神之后,开始安装:

pip install tinyms==0.3.1 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

看来还得降级装一下0.3.0的版本:

pip install tinyms==0.3.0 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

。。。

验证安装是否成功:

查看tinyms的版本:

pip show tinyms

查看下wsl2的IP地址:(好像看了也没啥用)

启动jupyter lab:

我们到JupyterLab页面去看看怎么玩转TinyMS。

浏览器打开以下地址:

 http://127.0.0.1:8888/lab?token=ce99234cec88f7be435dbb47d16cfe5d5de656d1d5369692

选择Python后打开:

奇怪,怎么没有tinyms包呢?

经过度娘得知,原来还需要安装下nb_conda:

安装之后,好像还是不行。

再二次度娘“jupyter notebook 设定指定conda环境”得知:https://blog.csdn.net/gs344937933/article/details/121883105

需要做个设置:

python -m ipykernel install --user --name tinyms --display-name "Python (tinyms)"

然后再到Notebook中,切换下内核:

再重试下:

好了,那我们来试下样例的TinyMS吧( https://tinyms.readthedocs.io/zh_CN/v0.3.1/quickstart/quickstart_in_one_minute.html

感觉好像还是版本不匹配引起的,试着安装下tinyms的0.3.1版本吧:

pip install tinyms==0.3.1 

不使用国内pip源速度慢一点,但是却可以装。那就耐心等待安装结束吧。

再来重启jupyter lab和重新执行Notebook

终于可以了。(牛年不容易,期望虎年容易些。。)

创建LeNet网络:

下载数据集:

耐心等待下载完毕:

下面开始训练模型:

。。。

耐心等待第一个epoch 1875个step结束:

可见左边的ckpt模型文件已经生成。

然后开始评估:

定义servable json

启动服务器:

此时,因为这个命令没有执行完毕,所以出现不了数字。

再打开一个新的Notebook(选择TinyMS内核)

准备图片:

查看后台模型:

进行推理(通过serving发送请求)

可以看到推理的结果是7。

再切换到原来的服务端,关闭服务:

这就完成了手写数字LeNet网络的训练和推理过程。

从上面的体验可以看出:

(1)从主体代码来看,TinyMS像是将基本代码和MindSpore Serving做了个结合。

(2)训练代码在建立网络上略显得简洁,训练参数也略有减少,但是所有的步骤貌似都没减少。如果让用户看到更少的参数设置或许会更好一点。

(3)推理代码一行话完成,确实也简洁了很多。说明TinyMS团队的目标就是让开发者使用起来更简单一些。

这就是MindSpore跟TinyMS开发的对比。

至于TinyMS跟Keras开发的对比,我们下次再看一下吧。

先祝大家虎年吉祥。

(全文完,谢谢阅读)

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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