该问题是因为我第一次训练的时候报错,之后修改了代码中一些函数定义,而源代码中包含一条语句:
# 检查是否存在检查点文件,如果不存在,则保存一个初始的检查点文件
if not os.path.exists(pre_model_save_path):
save_checkpoint(model, optimizer, scheduler, pre_model_save_path)
导致第一次错误运行时保存了之前的错误model,修改代码之后再次运行会加载原有错误的模型,导致两个模型参数不对应。
解决办法就是删除你之前运行保存"pre_model_save_path"路径下的“.pt”文件,再次运行即可