订阅算法训练日志和事件分析
【摘要】 如下图事件信息,从AI GALLERY订阅的“图像分类ResNet50-EI-Backbone”,进行训练。20年的官方“图像分类-ResNet_v1_50”算法好像没有了,只有for ascend的版本。事件开始:训练作业创建成功。2025/01/14 22:58:23 GMT+08:00然后是PodGroup调度、Pod调度与挂载Pod的卷[Pod: modelarts-job-37da...
如下图事件信息,从AI GALLERY订阅的“图像分类ResNet50-EI-Backbone”,进行训练。20年的官方“图像分类-ResNet_v1_50”算法好像没有了,只有for ascend的版本。
事件开始:
训练作业创建成功。2025/01/14 22:58:23 GMT+08:00
然后是PodGroup调度、Pod调度与挂载Pod的卷
[Pod: modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-worker-0] SuccessfulMountVolume: Successfully mounted volumes for pod “modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-worker-0_default(022c4864-d288-11ef-9f0d-fa163eba764d)”
2025/01/14 22:58:27 GMT+08:00
[PodGroup: modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531] Scheduled: pod group is ready
2025/01/14 22:58:27 GMT+08:00
[Pod: modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-worker-0] Scheduled: Successfully assigned default/modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-worker-0 to 192.168.0.153
2025/01/14 22:58:27 GMT+08:00
注:Pod是Kubernetes中最小的部署单元,封装了一个或多个容器,共享网络和存储资源。 PodGroup用于管理一组Pod,确保这些Pod作为一个整体进行调度和管理,适用于分布式训练和微服务架构等场景。
然后是容器镜像拉取、容器启动与训练作业运行、训练输出上传、训练完成。
[worker-0] 训练输出(参数名称:train_url)上传中。
2025/01/14 23:05:05 GMT+08:00
训练作业开始运行。
2025/01/14 23:00:15 GMT+08:00
[Pod: modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-worker-0] Started: Started container
2025/01/14 23:00:14 GMT+08:00
[Pod: modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-worker-0] SuccessfulCreate: Created container
2025/01/14 23:00:14 GMT+08:00
[Pod: modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-worker-0] Pulled: Successfully pulled image “swr.cn-north-4.myhuaweicloud.com/modelarts-job-dev-image/modelarts-tool-container:1.0.0-6.7.0-r001.3”
2025/01/14 23:00:13 GMT+08:00
镜像源:华为云的容器镜像服务(SWR),具体路径为swr.cn-north-4.myhuaweicloud.com下面/modelarts-job-dev-image/目录
镜像版本:
modelarts-tool-container:1.0.0-6.7.0-r001.3:工具容器镜像,可能包含了一些用于训练作业的工具和脚本。
pytorch-cuda10-cp36:1.4.0-3.1.0:包含PyTorch和CUDA支持的Python 3.6环境的镜像,适用于深度学习训练。
镜像拉取共拉取了3次镜像,其中modelarts-tool-container:1.0.0-6.7.0-r001.3被拉取了两次(有些奇怪为什么是2次),pytorch-cuda10-cp36:1.4.0-3.1.0被拉取了一次。共启动了3次容器。
下图是训练日志,应该是容器里面打印出来的日志
日志记录了模型训练的过程,包括初始化、训练事件的报告、模型下载、训练执行以及结果输出等关键步骤。
初始化命令:bash /home/ma-user/training/init.sh ‘gallery://cnnorth4-modelhub-models/item/24298ade-0189-48ee-88e3-e01f484e73dc/4.0.0/code/resnet50_ei_backbone/?last_dir=resnet50_ei_backbone’
下载模型代码:从obs://cnnorth4-modelhub-models/item/24298ade-0189-48ee-88e3-e01f484e73dc/4.0.0/code/resnet50_ei_backbone/下载模型代码到本地目录/home/work/modelarts/user-job-dir。
下载文件列表:
resnet50_ei_backbone/code/train_start.py:训练启动脚本。
resnet50_ei_backbone/code/pip-requirements.txt:依赖库列表。
resnet50_ei_backbone/pretrained_model/resnet50/ei_model.pth:预训练模型文件。
resnet50_ei_backbone/config.yaml:配置文件。
训练执行阶段是整个模型训练过程的核心部分,涉及模型的训练、验证和评估。
环境准备:确认使用的是PyTorch引擎,Python版本为3。
训练参数设置:包括学习率(lr)、动量(momentum)、批量大小(batch_size)、训练周期(epochs)等。
数据准备:从/home/work/modelarts/inputs/data_url_0/V003.manifest加载数据。
模型加载:从resnet50_ei_backbone/pretrained_model/resnet50/ei_model.pth加载预训练模型。
训练过程:每个epoch的训练和验证过程被详细记录,包括损失值、准确率、样本处理速度(Sample/secs)和每个epoch的时间消耗。
动态调整学习率:在第20个epoch后,学习率从0.002调整到0.0002,第40个epoch后进一步调整到0.00002。
INFO:root:Epoch: [19] steps: 0 lr: 0.00200 Sample/secs: 34.57 Batch Time 1.851 (1.851) Data 1.667 (1.667) Loss 0.0228 (0.0228)
INFO:root:Train Epoch: 19, Time cost: 2.117398738861084
INFO:root:Validation: Top1: 87.500
INFO:root:Eval Epoch: 19, Time cost: 1.633683204650879
INFO:root:Epoch: [20] steps: 0 lr: 0.00020 Sample/secs: 34.78 Batch Time 1.840 (1.840) Data 1.656 (1.656) Loss 0.0282 (0.0282)
INFO:root:Train Epoch: 20, Time cost: 2.079427719116211
INFO:root:Validation: Top1: 91.667
INFO:root:Eval Epoch: 20, Time cost: 1.5918896198272705
关键训练指标
损失值:随着训练的进行,训练损失逐渐降低,从初始的1.3863降低到0.0043(在第49个epoch)。
准确率:验证集上的Top1准确率从最初的8.333%提高到最高的100.000%(在第10和11个epoch)。
注:Top1准确率是深度学习模型评估中的一个指标,表示模型预测的最有可能的类别(即概率最高的类别)与实际类别一致的比例。Top1:表示模型预测的最有可能的类别。Top2准确率(Top-2 Accuracy)是另一个指标,它表示模型预测的前两个最有可能的类别(即概率最高的两个类别)中包含实际类别的比例。
时间消耗:每个epoch的训练时间在1.5秒到2.3秒之间,显示出训练效率较高。
训练完成与输出处理
包括日志文件的上传和训练结果的保存。
日志文件处理:使用modelarts-pipe创建和写入日志文件/home/work/modelarts/outputs/log/modelarts-job-37da5f84-b9a1-4f31-ab7f-dbc029c43531-training.log。
输出上传:将训练输出上传到OBS路径/ifantong/goodfood/trainout/
就是保存的模型文件有好多个,如下图
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)