提交 1d47e44b 编写于 作者: 李嘉琪

update the version of the picture and add notes and code

上级 7b60d688
...@@ -269,7 +269,7 @@ if __name__ == '__main__': ...@@ -269,7 +269,7 @@ if __name__ == '__main__':
## 创建训练任务 ## 创建训练任务
准备好数据和执行脚本以后,需要创建训练任务将MindSpore脚本真正运行起来。首次使用ModelArts的用户可以根据本章节了解ModelArts创建训练作业的流程。 准备好数据和执行脚本以后,需要创建训练任务将MindSpore脚本真正运行起来。首次使用ModelArts的用户可以根据本章节了解ModelArts创建训练作业的流程。
> 本章节以MindSpore 0.1.0-alpha版本为例 > 本章节以MindSpore 0.5.0-alpha版本为例。ModelArts支持的MindSpore版本以创建训练作业时"算法来源"->"常用框架"->"AI引擎"可选择的版本为准
### 进入ModelArts控制台 ### 进入ModelArts控制台
...@@ -283,7 +283,7 @@ ModelArts教程<https://support.huaweicloud.com/engineers-modelarts/modelarts_23 ...@@ -283,7 +283,7 @@ ModelArts教程<https://support.huaweicloud.com/engineers-modelarts/modelarts_23
以本教程使用的训练脚本和数据为例,详细列出在创建训练作业界面如何进行配置: 以本教程使用的训练脚本和数据为例,详细列出在创建训练作业界面如何进行配置:
1. `算法来源`选择`常用框架 > Ascend-Powered-Engine > MindSpore-0.1-aarch64-cp37` 1. `算法来源`选择`常用框架 > Ascend-Powered-Engine > MindSpore-0.5-python3.7-aarch64`
2. `代码目录`选择预先在OBS桶中创建代码目录,`启动文件`选择代码目录下的启动脚本。 2. `代码目录`选择预先在OBS桶中创建代码目录,`启动文件`选择代码目录下的启动脚本。
...@@ -305,11 +305,14 @@ ModelArts教程<https://support.huaweicloud.com/engineers-modelarts/modelarts_23 ...@@ -305,11 +305,14 @@ ModelArts教程<https://support.huaweicloud.com/engineers-modelarts/modelarts_23
1. 在训练作业界面可以查看运行日志 1. 在训练作业界面可以查看运行日志
采用`8*Ascend`规格执行ResNet-50训练任务,epoch总数为90,精度约为91%,每秒训练图片张数约12200,日志如下图所示。 采用`8*Ascend`规格执行ResNet-50训练任务,epoch总数为92,精度约为92%,每秒训练图片张数约12000,日志如下图所示。
![8*Ascend训练执行结果](./images/train_log_8_Ascend_clu.png)
![8*Ascend训练执行结果](./images/train_log_8_Ascend.png) ![8*Ascend训练执行结果](./images/train_log_8_Ascend.png)
采用`1*Ascend`规格执行ResNet-50训练任务。epoch总数为90,精度约为91%,每秒训练图片张数约1600,日志如下图所示。
采用`1*Ascend`规格执行ResNet-50训练任务。epoch总数为92,精度约为95%,每秒训练图片张数约1800,日志如下图所示。
![1*Ascend训练执行结果](./images/train_log_1_Ascend.png) ![1*Ascend训练执行结果](./images/train_log_1_Ascend.png)
......
...@@ -140,11 +140,15 @@ def resnet50_train(args_opt): ...@@ -140,11 +140,15 @@ def resnet50_train(args_opt):
# create model # create model
net = resnet50(class_num = class_num) net = resnet50(class_num = class_num)
# reduction='mean' means that apply reduction of mean to loss
loss = SoftmaxCrossEntropyWithLogits(sparse=True, reduction='mean') loss = SoftmaxCrossEntropyWithLogits(sparse=True, reduction='mean')
lr = Tensor(get_lr(global_step=0, total_epochs=epoch_size, steps_per_epoch=train_step_size)) lr = Tensor(get_lr(global_step=0, total_epochs=epoch_size, steps_per_epoch=train_step_size))
opt = Momentum(net.trainable_params(), lr, momentum=0.9, weight_decay=1e-4, loss_scale=loss_scale_num) opt = Momentum(net.trainable_params(), lr, momentum=0.9, weight_decay=1e-4, loss_scale=loss_scale_num)
loss_scale = FixedLossScaleManager(loss_scale_num, False) loss_scale = FixedLossScaleManager(loss_scale_num, False)
# amp_level="O2" means that the hybrid precision of O2 mode is used for training
# the whole network except that batchnoram will be cast into float16 format and dynamic loss scale will be used
# 'keep_batchnorm_fp32 = False' means that use the float16 format
model = Model(net, amp_level="O2", keep_batchnorm_fp32=False, loss_fn=loss, optimizer=opt, loss_scale_manager=loss_scale, metrics={'acc'}) model = Model(net, amp_level="O2", keep_batchnorm_fp32=False, loss_fn=loss, optimizer=opt, loss_scale_manager=loss_scale, metrics={'acc'})
# define performance callback to show ips and loss callback to show loss for every epoch # define performance callback to show ips and loss callback to show loss for every epoch
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册