在华为云服务器上使用 MindSpore

举报
冰露 发表于 2021/05/12 16:55:28 2021/05/12
【摘要】 本文主要通过实际应用案例:基于华为云服务器的 CIFAR-10 图像分类,对开源框架 MindSpore 进行介绍。

ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。

下面我们将在 ModelArts 下使用 ResNet-50 网络识别 CIFAR-10 图片,简要介绍如何在ModelArts使用MindSpore完成训练任务。

1. 准备 ModelArts

1) 进入华为云官网,注册账号。

具体操作:https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0069252244.html

2)完成实名认证

注册成功后即可自动登录华为云,您需要完成实名认证才可以正常使用服务。具体认证方式:

https://support.huaweicloud.com/usermanual-account/account_auth_00001.html

3) 配置访问授权

完成授权配置(推荐使用委托授权)具体操作:https://support.huaweicloud.com/prepare-modelarts/modelarts_08_0007.html

4)创建 OBS 桶

具体操作:https://support.huaweicloud.com/prepare-modelarts/modelarts_08_0007.html

2. 数据准备

1) 下载 CIFAR-10 数据集

CIFAR-10 该数据集共有 60000 张RGB图像,这些图像是 32*32,分为 10 个类,每类 6000 张图。

CIFAR-10 数据集下载地址:http://www.cs.toronto.edu/~kriz/cifar.html

注意下载 CIFAR-10 binary version 版本。

2) 新建一个自己的 OBS 桶(例如:mine-ms-dataset)

ModelArts 使用对象存储服务(Object Storage Service,简称 OBS)进行数据存储,因此,在开始训练任务之前,需要将数据上传至 OBS。

首先,登录 OBS 管理控制台:https://storage.huaweicloud.com/obs/?region=cn-north-4#/obs/manager/buckets,创建 OBS 桶 mine-ms-dataset(名称可修改,下面类似)。

然后,在刚创建的 OBS 桶里,创建用于存放数据的文件夹:在桶列表单击待操作的桶,在左侧导航栏,单击“对象”,新建文件夹 mine-cifar-10。

最后,将下载好的 CIFAR-10 数据集按照以下目录结构上传至数据目录 mine-cifar-10 中:

└─对象存储/mine-ms-dataset/mine-cifar-10
    ├─train
    │      data_batch_1.bin
    │      data_batch_2.bin
    │      data_batch_3.bin
    │      data_batch_4.bin
    │      data_batch_5.bin
    │
    └─eval
        test_batch.bin

3. 程序准备

新建一个 OBS 桶(例如:mine-resnet50-train),在桶中创建代码目录(例如:mine-resnet50_cifar10_train)。同时在该桶中创建 output 目录和 log 目录,用来存放模型和日志。

将网址:https://gitee.com/mindspore/docs/tree/master/tutorials/tutorial_code/sample_for_cloud/

中的两个 .py 文件 dataset.py 和 resnet50_train.py 下载并上传到代码目录 mine-resnet50_cifar10_train 中。

代码目录 mine-resnet50_cifar10_train 结构如下:

└─对象存储/mine-resnet50-train
    ├─mine-resnet50_cifar10_train
    │      dataset.py
    │      resnet50_train.py
    │
    ├─output
    └─log

注意运行脚本的版本需要与”创建训练任务”步骤选择的MindSpore版本一致。例如:使用MindSpore 1.1版本教程提供的脚本,则需要在创建训练任务时选择1.1版本的MindSpore引擎。

4. 创建训练任务

准备好数据和执行脚本以后,下面就可以在云服务器上创建训练任务了。

1) 进入 ModelArts 控制台

打开华为云 ModelArts 主页:https://www.huaweicloud.com/product/modelarts.html,点击“进入控制台”。

2) 使用 MindSpore 作为常用框架创建训练作业

在左侧导航栏中选择“训练管理 > 训练作业”,默认进入“训练作业”列表。

在训练作业列表中,单击左上角“创建”,进入“创建训练作业”页面。

在创建训练作业页面,训练作业名称自定义,例如 mine-resnet50-trainjob。填写训练作业相关参数,具体配置参数如下:

  1. 算法来源:选择常用框架,然后AI引擎选择Ascend-Powered-Engine和所需的MindSpore版本(本示例图片为Mindspore-0.5-python3.7-aarch64,请注意使用与所选版本对应的脚本)。

  2. 代码目录:选择预先在OBS桶中创建代码目录,启动文件选择代码目录下的启动脚本。

  3. 数据来源:选择数据存储位置,并填入OBS中CIFAR-10数据集的位置。

  4. 运行参数:数据存储位置训练输出位置分别对应运行参数data_urltrain_url,选择增加运行参数可以向脚本中其他参数传值,如epoch_size。

  5. 资源池:选择公共资源池 

  6. 类型: 选择Ascend

  7. 规格:选择Ascend: 1 * Ascend 910 CPU:24 核 96GiB或Ascend: 8 * Ascend 910 CPU:192 核 768GiB,分别表示单机单卡和单机8卡规格。

创建界面如下图所示:

训练作业参数训练作业规格

注意:算法来源常用框架选择 Ascend-Powered-Engine,因为我们使用的是硬件是华为云昇腾 AI 处理器。MindSpore 版本选择 MindSpore-1.1-python3.7-aarch64 即可。

配置完之后,点击下一步 -> 提交 -> 返回训练作业列表,可以看到训练作业 mine-resnet50-trainjob 正在运行:

整个运行过程大概  8 分半钟,显示运行成功,表示模型训练测试完成。

最后,点击训练作业 mine-resnet50-trainjob,在日志里可以看到模型在测试集上的准确率为 92.47%,说明该模型效果不错。

我们还可以从 OBS 中下载日志文件并查看。

以上就是在云上使用 MindSpore 的简单教程。

总结
MindSpore 的使用还是比较方便的,而且函数封装得比较简洁,通过手把手的教程,大家可以在华为云ModelArts上,感受一下开源框架 MindSpore 的魅力。

参考资料:

https://www.mindspore.cn/

https://www.mindspore.cn/tutorial/zh-CN/master/index.html

https://support.huaweicloud.com/modelarts/index.html

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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