This commit is contained in:
liuzx 2022-01-11 12:01:00 +08:00
commit b603fa9dbb
1 changed files with 51 additions and 46 deletions

View File

@ -1,60 +1,65 @@
# 如何在启智平台上进行模型训练
## 概述
- ModelArts是华为云提供的面向开发者的一站式AI开发平台集成了昇腾AI处理器资源池用户可以在ModelArts下体验MindSpore。OBS是华为云提供的存储方式。
启智平台对接ModelArts和OBS将数据集代码训练资源池等整合在启智平台上供开发者使用
本教程以LeNet-MNIST为例简要介绍如何在启智平台上使用MindSpore完成训练任务。
## MNIST_Example
- 本项目旨在为AI初学者提供云脑训练示例。大家可以直接使用本项目提供的数据集和代码文件创建自己的训练任务。
## 准备工作
- 启智平台使用准备,本项目需要用户创建启智平台账户,克隆代码到自己的账户,上传数据集,可以通过访问[OpenI_Learning](https://git.openi.org.cn/zeizei/OpenI_Learning)项目学习小白训练营系列课程进行学习。
## 数据准备
## 1 概述
- 本项目以LeNet-MNIST为例简要介绍如何在启智AI协同平台上使用MindSpore完成训练任务旨在为AI初学者提供云脑训练示例。
- 大家可以直接使用本项目提供的数据集和代码文件创建自己的训练任务。
- 启智平台对接ModelArts和OBS将数据集代码训练资源池等整合在启智AI协同平台上供开发者使用。
- ModelArts是华为云提供的面向开发者的一站式AI开发平台集成了昇腾AI处理器资源池用户可以在ModelArts下体验MindSpore。
- OBS是华为云提供的存储方式。
## 2 准备工作
- 启智平台使用准备,本项目需要用户创建启智平台账户,克隆代码到自己的账户,上传数据集,具体操作方法可以通过访问[OpenI_Learning](https://git.openi.org.cn/zeizei/OpenI_Learning)项目学习小白训练营系列课程进行学习。
### 2.1 数据准备
- 数据集可从本项目的数据集目录中下载,[数据集下载](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/datasets?type=1)
### 数据文件说明
- MNISTData数据集是由10类2828的灰度图片组成训练数据集包含60000张图片测试数据集包含10000张图片。
数据集文件的目录结构如下:
MNIST_Data
├── test
│ ├── t10k-images-idx3-ubyte
│ └── t10k-labels-idx1-ubyte
└── train
├── train-images-idx3-ubyte
└── train-labels-idx1-ubyte
## 执行脚本准备
### 示例代码
- 数据文件说明
- MNISTData数据集是由10类2828的灰度图片组成训练数据集包含60000张图片测试数据集包含10000张图片。
- 数据集文件的目录结构如下:
> MNIST_Data
> ├── test
> │ ├── t10k-images-idx3-ubyte
> │ └── t10k-labels-idx1-ubyte
> └── train
> ├── train-images-idx3-ubyte
> └── train-labels-idx1-ubyte
### 2.2 执行脚本准备
#### 示例代码
- 示例代码可从本仓库中下载,[代码下载](https://git.openi.org.cn/OpenIOSSG/MNIST_Example)
### 代码文件说明
- [train.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/train.py)用于训练的脚本文件包括将数据集从obs拷贝到训练镜像中、指定迭代次数、把训练后的模型数据拷贝回obs等。具体说明请参考[train.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/train.py)的代码注释
- 代码文件说明
- [train.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/train.py)用于训练的脚本文件包括将数据集从obs拷贝到训练镜像中、指定迭代次数、把训练后的模型数据拷贝回obs等。具体说明请参考[train.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/train.py)的代码注释
- [inference.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/eval.py),用于推理的脚本文件。
- [inference.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/eval.py),用于推理的脚本文件。
- [eval.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/eval.py),用于验证的脚本文件。
- [eval.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/eval.py),用于验证的脚本文件。
- [config.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/config.py)网络配置信息在train.py中会使用到。
- [config.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/config.py)网络配置信息在train.py中会使用到。
- [dataset.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/dataset.py),对原始数据集进行预处理,产生可用于网络训练的数据集。
- [dataset.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/dataset.py),对原始数据集进行预处理,产生可用于网络训练的数据集。
- [lenet.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/lenet.py),使用的训练网络,在train.py中会使用到。
## 创建训练任务
准备好数据和执行脚本以后需要创建训练任务将MindSpore脚本真正运行起来。首次使用的用户可参考本示例代码。
### 使用MindSpore作为常用框架创建训练作业
- <font face="STCAIYUN">代码分支</font>选择仓库代码中要使用的代码分支默认可选择master分支
- <font face="STCAIYUN">AI引擎</font>AI引擎选择[Ascend-Powered-Engine]和所需的MindSpore版本(本示例图片为 [Mindspore-1.3.0-python3.7-aarch64],请注意使用与所选版本对应的脚本)。
- [lenet.py](https://git.openi.org.cn/OpenIOSSG/MNIST_Example/src/branch/master/lenet.py),使用的训练网络,在train.py中会使用到。
- <font face="STCAIYUN">启动文件</font>:启动文件选择代码目录下的启动脚本。
- <font face="STCAIYUN">数据集</font>:数据集选择已上传到启智平台的数据集
## 3 创建训练任务
- 准备好数据和执行脚本以后需要创建训练任务将MindSpore脚本真正运行起来。首次使用的用户可参考本示例代码。
- <font face="STCAIYUN">运行参数</font>数据存储位置和训练输出位置分别对应运行参数data_url和train_url选择增加运行参数可以向脚本中其他参数传值如epoch_size。在这里只需填入其他参数传值data_url和train_url已默认加入运行参数用户无需重复指定只需在代码中指定。
- <font face="STCAIYUN">资源池</font>:规格选择[Ascend: 1 * Ascend 910 CPU24 核 256GiB],表示单机单卡
### 使用MindSpore作为训练框架创建训练作业如下图所示。
### 使用MindSpore作为训练框架创建训练作业界面截图如下图所示。
![avatar](Example_Picture/新建训练任务页面.png)
## 查看运行结果
在训练作业界面可以查看运行日志
表1 创建训练作业界面参数说明
| 参数名称 | 说明 |
| ----------------- | ----------- |
| 代码分支 | 选择仓库代码中要使用的代码分支默认可选择master分支。 |
| AI引擎 | AI引擎选择[Ascend-Powered-Engine]和所需的MindSpore版本(本示例图片为 [Mindspore-1.3.0-python3.7-aarch64],请注意使用与所选版本对应的脚本)。 |
| 启动文件 | 启动文件选择代码目录下的启动脚本。 |
| 数据集 | 数据集选择已上传到启智平台的数据集。 |
| 运行参数 | 数据存储位置和训练输出位置分别对应运行参数data_url和train_url选择增加运行参数可以向脚本中其他参数传值如epoch_size。在这里只需填入其他参数传值data_url和train_url已默认加入运行参数用户无需重复指定只需在代码中指定。 |
| 资源池 | 规格选择[Ascend: 1 * Ascend 910 CPU24 核 256GiB],表示单机单卡 |
## 4 查看运行结果
### 4.1 在训练作业界面可以查看运行日志
![avatar](Example_Picture/查看日志页面.png)
训练结束后可以下载模型文件
![avatar](Example_Picture/模型下载页面.png)
# 说明
本节内容侧重介绍如何准备一个训练任务的启动文件,关于如何上传代码、上传数据集、创建调试任务和训练任务,可以访问[OpenI_Learning](https://git.openi.org.cn/zeizei/OpenI_Learning)项目学习小白训练营系列课程。
### 4.2 训练结束后可以下载模型文件
![avatar](Example_Picture/模型下载页面.png)