MindSpore新工具TinyMS体验
CloudIDE 体验 MindSpore 1.2.0-rc1 新特性
❝大家好,我是 Copy攻城狮 ,专注“写” Hello World 30年,因此被亲切称为“HW工程师”。差不多3个月前,有幸体验MindSpore新年新版本,前所未有的丝滑,3个月一个大版本,新版本又来了!今天,本大狮给小伙伴们带来了全新的体验,这是您没玩过的全新版本 -- 使用云编辑器 CloudIDE 运行 MindSpore 1.2.0-rc1,体验MindSpore 新特性!
❞
CloudIDE
首先,本大狮认为全宇宙最牛叉的 IDE 一定是 VSCode ,因此,众多云厂商的云编辑器都基于 VSCode Online 实现。华为云的 CloudIDE 也不例外。
CloudIDE 是面向云原生的轻量级WebIDE,通过浏览器访问即可实现云端开发环境获取、代码编写、编译调试、运行预览、访问代码仓库、命令行执行等能力,同时支持丰富的插件扩展。
在线体验地址: https://devcloud.cn-north-4.huaweicloud.com/cloudide/trial
关键是「鲲鹏计算 免费!免费!免费!」
CloudIDE 入口:
CloudIDE 实例:
到什么山唱什么歌,既然来到了 MindSpore 的地盘,先来个 Python 的环境。
看看我使用的环境配置:
在看看 Python 版本:
user@ru76x7kqbuu-machine:~$ python --version
Python 3.7.0
勉强满足 MindSpore 推荐的 Python 3.7.5,至少大版本相同。
安装 MindSpore
这界面是不是像极了 VSCode ?终端命令行走起:
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.2.0-rc1/MindSpore/cpu/ubuntu_aarch64/mindspore-1.2.0rc1-cp37-cp37m-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
# 注意参考下方安装指南,确保安装依赖以及环境变量配置正确
轻松Copy,一键安装,默认使用华为云的镜像,安装速度倍儿快。
再来一行代码检查一下是否安装正常:
user@ru76x7kqbuu-machine:~$ python -c "import mindspore;print(mindspore.__version__)"
1.2.0-rc1
哦,天哪,安装居然如此简单,如此丝滑。这里不得不吐槽一下 tf 1.15.0 的安装,直接白白浪费了本大狮一个多小时,各种报错。
学习 MindSpore
作为Copy攻城狮,最厉害的技能无非就是复制粘贴了,因此我们可以直接 clone MindSpore 的 docs 仓库:
git clone https://gitee.com/mindspore/docs
好了,文档有了,代码也有了,还有 .ipynb 文件也有了,请开始学习吧!
从 quick_start.ipynb
开始,开始我们的 MindSpore 学习之旅!
CloudIDE 默认支持解析.ipynb 文件,也许是我选用的 Python 开发环境自动安装的。这是一个手写数字识别的案例,运行 1875 步之后,我们获得的训练结果:
epoch: 1 step: 1872, loss is 0.08411364
epoch: 1 step: 1873, loss is 0.07816357
epoch: 1 step: 1874, loss is 0.026486307
epoch: 1 step: 1875, loss is 0.09032617
{'Accuracy': 0.9582331730769231}
不得不感叹,云时代的到来,给我们带来了太多的便利。
不过目前 MindSpore 新特性大部分集中在 GPU 和 Ascend 环境,因此本文不做过多体验。
题外话,想体验 tinyms , 没想暂时只有 MindSpore 1.1.1 才支持:
tinyms 文档地址: https://tinyms.readthedocs.io/zh_CN/latest/index.html
体验 TinyMS
重新安装 MindSpore 1.1.1
pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.1.1/MindSpore/cpu/ubuntu_aarch64/mindspore-1.1.1-cp37-cp37m-linux_aarch64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
安装 TinyMS
pip install tinyms
验证安装:
import tinyms as ts
from tinyms.primitives import tensor_add
x = ts.ones([2, 3])
y = ts.ones([2, 3])
print(tensor_add(x, y))
妥妥的!
接下来就是按照官方文档,「在一分钟内实现一个图形分类应用」!
依旧是Lenet手写数字识别,我们可以使用之前的数据集,也可以重新再下载,重新下载的话等待时间稍微有点久。不过使用 CloudIDE 的时候要留意文件夹权限,我们将源码中的 /root
替换为 ./data
,规避文件夹权限不够的问题。
接着就是训练模型(操作总是惊人的相似,也修改了文件路径):
等待训练完毕之后,为推理做准备,TinyMS推理是C/S(Client/Server)架构。TinyMS使用Flask这个轻量化的网页服务器架构作为C/S通讯的基础架构。
……
当我满怀期待想要尝试推理部署时,发现 servable_path
暂时不能自定义,当我调用list_servables()
时,由于在 CloudIDE 上没有权限写入文件到 /etc
等目录,因此也无法读取到我定义的servable.json
。体验到此告一段落!
后续我会尝试在 Linux 上再次体验!同时也期待在未来TinyMS可以支持更自由的配置。
如果您对本文有任何疑问,欢迎联系我!