unet模型无法恢复训练

1.芯片型号:X3

2.天工开物开发包OpenExplorer版本:XJ3_OE_2.5.2

3.问题定位:unet模型训练

4.问题具体描述

利用

python3 tools/train.py --stage float --config configs/segmentation/unet.py

进行训练

训练到epotch8因为读取数据超时意外停止,

模型文件产生到此

float-checkpoint-epoch-0008-30554cd8.pth.tar

现在我希望继续在epotch8的基础上恢复训练,

于是按照文档

Horizon-Torch-Samples 1.2.0

在unet.py里加上

float_solver = dict(-
trainer=float_trainer,-
quantize=False,-
# 配置 resume_checkpoint, 即 checkpoint 文件路径-
resume_checkpoint=“./tmp_models/dwunet_seg/float-checkpoint-last.pth.tar”,-
# 配置 resume_optimizer, 即是否恢复 optimizer, 默认为 True-
resume_optimizer=True,-
# 配置 resume_epoch_or_step, 即是否恢复 epoch(step) 计数, 默认-
True-
resume_epoch_or_step=True,-
)

但是无法恢复训练,我再次执行

python3 tools/train.py --stage float --config configs/segmentation/unet.py

终端输出的消息是

809 INFO [metric_updater.py:320] Node[0] Epoch[0] Step[99] GlobalStep[99] dwunet_seg: MeanIOU[tensor(0.0766, device=‘cuda:0’)]

还是从Epoch[0]开始。

您好,恢复训练有三种使用场景:-

  1. 完全恢复: 该场景为恢复意外中断的训练,会恢复上一个checkpoint 的所有状态,包括 optimizer、LR、epoch、step 等。该场景只需配置 resume_optimizer 字段即可;
  2. 恢复 optimizer 用于 fine-tune: 该场景只会恢复 optimizer 和 LR 的状态,但 epoch、step 都会从0开始,用于某些任务的 fine-tune。该场景需要配置 resume_optimizer,并且需要配置resume_epoch_or_step=False。
  3. 只加载模型参数: 该场景只会加载模型参数,不会恢复其他任何状态(optimizer、epoch、step、LR)。该场景只需要在 model_convert_pipeline 中配置 LoadCheckpoint ,并且需要配置 resume_optimizer=False 和 resume_epoch_or_step=False。

麻烦检查一下配置,在 trainer 里面配置 resume_optimizer=True 和 resume_epoch_or_step=True,并且在 LoadCheckpoint 里配置 checkpoint_path-