在云上使用MindSpore

1、沙箱实验

打开沙箱链接,即可开始体验。

云端运行python 云端运行pr_git

今天咱来得早,名额较为充足。打开实验桌面。

我们看到实验桌面有MNIST数据集和实验脚本。

云端运行python 云端运行pr_python_02

云端运行python 云端运行pr_git_03

创建桶参数如下:

①复制桶配置:不选
②区域:华北-北京四;
③桶名称:ms-lenet-train-0501;
④数据冗余存储策略:多AZ存储
⑤存储类别:标准存储;
⑥桶策略:私有;
⑦默认加密:关闭;
⑧归档数据直读:关闭;其他参数默认(OBS桶名称需全局唯一,若出现以下提醒,自定义其他桶名称即可。需要记住此步骤中创建的桶名称,以便后续使用。)

在创建的桶新建一个文件夹
上传test和train

云端运行python 云端运行pr_python_04

修改lenet.py如下,将通道数改为1,然后保存退出

云端运行python 云端运行pr_人工智能_05

修改dataset.py如下

云端运行python 云端运行pr_云端运行python_06

云端运行python 云端运行pr_深度学习_07

然后,将脚本上传,就可以开始实验了,此处不再赘述。

2、Ascend910训练和Ascend310推理

步骤1:准备训练数据
  1. 单击样例数据集链接,跳转至“AI Gallery > 数据 > 四类花卉图像分类小数据集”页面。
  2. 单击
    “下载”
    跳转至下载页面详情页。
  3. 在下载详情页,填写参数。
  • 下载方式:选择“对象存储OBS服务”
  • 目标区域:选择“华北-北京四”
  • 目标位置:请选择一个空的OBS目录

云端运行python 云端运行pr_git_08

步骤2:订阅算法

目前**“ResNet50”**算法发布在AI Gallery中。您可以前往AI Gallery,订阅此模型,然后同步至ModelArts中。

  1. 在这里图像分类订阅算法,
  2. 前往控制台,选择北京四

云端运行python 云端运行pr_云端运行python_09

云端运行python 云端运行pr_git_10

步骤3:使用订阅算法创建训练作业(Ascend 910)

但是,这个算法居然没有任何的发布版本,

云端运行python 云端运行pr_深度学习_11


在5月1日订阅的根本创建不了训练任务。。。

官网的文档又欺骗了我。还好,爷有预备的算法:

图像分类-ResNet_v1_50

在新版训练作业环境下创建训练作业,参数如下

  • “算法>我的订阅”
  • 云端运行python 云端运行pr_深度学习_12

  • “数据来源”:选择刚刚的数据集

云端运行python 云端运行pr_深度学习_13


选择一个GPU

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oDvEFUuV-1651397769826)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202205011633441.png)]

训练完成

步骤4:模型转换

使用订阅算法训练所得的模型,需通过转换功能,转成适用于Ascend芯片的格式,即“om”格式。

  1. 在ModelArts管理控制台,选择**“AI应用管理 > 模型转换”**。
  2. 在模型转换作业列表页面,单击“创建任务”。在创建转换任务页面中,参考如下说明填写关键参数。

本次使用的算法为ResNet_v1_50算法(图像分类/TensorFlow/Ascend910训练),模型转换任务与ResNet50算法不一样的参数如下所示。

“输入框架”:选择“TensorFlow”。

“转换输入目录”:请选择训练作业输出路径下的“<输出路径>frozen_gragh”目录。

“输出框架”:选择“MindSpore”。

“转换输出目录”:请选择训练作业输出路径下的“<输出路径>/om/model”目录。

“转换模板”:使用**“TF-FrozenGraph-To-Ascend-C32”**模板进行模型转换。

“输入张量形状”:“images:1,224,224,3”

“输入数据格式”:“NHWC”

“转换输出节点”:“logits:0”

云端运行python 云端运行pr_人工智能_14

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LTxBDnJm-1651397769832)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202205011659704.png)]

万岁,成功啦乌拉

步骤5:创建AI应用

模型转换为om格式后,可采用“从模板中选择”的方式,创建AI应用。

  1. 在ModelArts管理控制台,选择**“A应用管理 > AI应用 > 我的AI应用”**。
  2. 配置如上
步骤6:部署为在线服务(Ascend 310)

AI应用创建成功后,可将此服务部署为在线服务,在部署时可使用Ascend 310芯片资源。

  1. 在“AI应用管理 >AI应用 >我的AI应用”列表中,单击AI应用名称进入详情页,单击右上角的“部署 > 在线服务”
    >在线服务”**页面单击“创建”,进入部署页面。
  2. 在“部署”页面,参考如下说明填写关键参数。

云端运行python 云端运行pr_python_15

  1. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Au4rNRWf-1651397769835)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202205011722937.png)]
  2. 在线服务部署完成后,您可以单击服务名称进入服务详情页。
  • 访问服务:了解调用指南,获取API接口地址,可通过postman或使用curl命令发送请求,访问在线服务
  • 预测:单击“预测”页签,上传一个测试图片,进行预测。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xqhj647K-1651397769835)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202205011725321.png)]
上传了一张webp,发现失败了。

看来不能识别呢。

上传了jpg就可以了。(第二个结果有点离谱;但这个不能怪我们的模型,要怪只能说我们的美女长的太像玫瑰了呢)

云端运行python 云端运行pr_人工智能_16

云端运行python 云端运行pr_python_17

云端运行python 云端运行pr_git_18

步骤7:清除资源

如果不再需要使用此模型及在线服务,建议清除相关资源,避免产生不必要的费用。

  • 在“在线服务”页面,“停止”或“删除”刚创建的在线服务。
  • 在“AI应用”页面,“删除”刚创建的AI应用。
  • 在“训练作业New”页面,“删除”运行结束的训练作业。
  • 进入OBS,删除本示例使用的OBS桶及文件夹,以及文件夹的文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3fybIWUA-1651397769837)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202205011730021.png)]

把我们可爱的在线服务停止吧。

3、如何参与社区建设?

最重要的就是提交PR啦。那怎样提交PR呢?

新建一个远程主仓

云端运行python 云端运行pr_深度学习_19


云端运行python 云端运行pr_深度学习_20


创建一个文件,并用qmckw账号fork到qmckw下

云端运行python 云端运行pr_人工智能_21

clone到本地

云端运行python 云端运行pr_git_22


云端运行python 云端运行pr_云端运行python_23


我们现在想修改一下这个hello.py

云端运行python 云端运行pr_git_24

git log # 查看目前的commit

云端运行python 云端运行pr_python_25

git status#查看状态,我们已经修改了hello.py

云端运行python 云端运行pr_深度学习_26

git remote -v # 查看远程仓是否配置了主仓

云端运行python 云端运行pr_python_27


远程仓库并未配置主仓

git remote add upstream https://gitee.com/csckw/remote-main-warehouse.git

云端运行python 云端运行pr_云端运行python_28

git add .
git commit -m "first"

云端运行python 云端运行pr_python_29

这个时候,倘若我们又要修改这个py文件。

云端运行python 云端运行pr_python_30


云端运行python 云端运行pr_人工智能_31


这个时候,我们可以看到有两个commit,需要合并为一个。

使用如下的命令。

git rebase -i HEAD~2

将第二行的pick改为小写字母s

云端运行python 云端运行pr_人工智能_32


云端运行python 云端运行pr_python_33


保存退出后,进入如下界面,不用修改,直接i-esc-:q即可

这个时候执行git log,就可以看到我们的commit已经合并为1个了。

云端运行python 云端运行pr_git_34

如果我们觉得可以在修改,比如下面我们再次修改了py文件。

云端运行python 云端运行pr_深度学习_35


这个时候,用如下的命令,可以直接修改这个commit,而不用合并。

git add .
git commit --amend

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PcYgB5tv-1651397769839)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202205011733142.png)]

云端运行python 云端运行pr_人工智能_36


云端运行python 云端运行pr_git_37


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jaTqamEs-1651397769840)(https://gitee.com/qmckw/pic/raw/master/PicGO-updata-img/202205011733562.png)]

这个时候,代码已经上传到我们的远程主仓了。现在到我们自己的远程主仓界面,提交PR

云端运行python 云端运行pr_云端运行python_38


这个时候,在csckw也就是仓库拥有者的文件下提交审核。

云端运行python 云端运行pr_人工智能_39


云端运行python 云端运行pr_人工智能_40


云端运行python 云端运行pr_人工智能_41

这样,这个pr变成了已合并的状态。

云端运行python 云端运行pr_python_42


任务就圆满完成了。

同理,你可以去MindSpore的仓库提交PR,这里就不演示啦。