在华为云服务器上使用 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。填写训练作业相关参数,具体配置参数如下:
-
算法来源:选择常用框架,然后AI引擎选择Ascend-Powered-Engine和所需的MindSpore版本(本示例图片为Mindspore-0.5-python3.7-aarch64,请注意使用与所选版本对应的脚本)。
-
代码目录:选择预先在OBS桶中创建代码目录,启动文件选择代码目录下的启动脚本。
-
数据来源:选择数据存储位置,并填入OBS中CIFAR-10数据集的位置。
-
运行参数:数据存储位置和训练输出位置分别对应运行参数data_url和train_url,选择增加运行参数可以向脚本中其他参数传值,如epoch_size。
-
资源池:选择公共资源池
-
类型: 选择Ascend
-
规格:选择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
- 点赞
- 收藏
- 关注作者
评论(0)