在tool/train.py中,有下面一行代码:
model_resume_path = os.path.join(cfg.save_dir, 'model_last.ckpt') if 'resume' in cfg.schedule else None
意思就是如果在自己的配置文件xxx.yml中,schedule下有resume的话,便加载上一次的模型继续训练,所以将resume前的注释删掉即可。
另外,tool/train.py中还有这样一段代码:
if 'load_model' in cfg.schedule:
ckpt = torch.load(cfg.schedule.load_model)
if 'pytorch-lightning_version' not in ckpt:
warnings.warn('Warning! Old .pth checkpoint is deprecated. '
'Convert the checkpoint with tools/convert_old_checkpoint.py ')
ckpt = convert_old_model(ckpt)
task.load_state_dict(ckpt['state_dict'], strict=False)
logger.log('Loaded model weight from {}'.format(cfg.schedule.load_model))
意思是可以自己指定训练模型。也是同理,将自己的xxx.yml中的load_model的注释去掉,再加上自己预训练模型的路径即可。
本篇博客用作自己学习记录,如有错误欢迎批评指正。