恢复训练时出现问题
收藏
我也遇到关于恢复训练的问题,在训练过程中能够保存、重新载入保存文件、评估都没有问题,但是训练结束后单独进行载入、评估,损失就很高,我感觉应该是模型还有东西没有保存始终没有看出问题,不知道哪里出问题了。
def save_model(self):
save_folder='result'
if not os.path.exists(save_folder):
os.makedirs(save_folder)
for model_name, model in self.models.items():
save_path = os.path.join(save_folder, '{}.pdparams'.format(model_name))
to_save = model.state_dict()
paddle.save(to_save, save_path)
save_path = os.path.join(save_folder, "{}.pdopt".format('sgd'))
paddle.save(self.opt.state_dict(), save_path)
def load_model(self):
model_folder='result'
model_names=['encoder','decoder']
for model_name in model_names:
model_path = os.path.join(model_folder, "{}.pdparams".format(model_name))
model_state = paddle.load(model_path)
self.models[model_name].set_state_dict(model_state)
opt_path = os.path.join(model_folder, "{}.pdopt".format('sgd'))
opt_state=paddle.load(opt_path)
self.opt.set_state_dict(opt_state)
liuzhicheng235
已解决
3#
回复于2022-03
我也是傻了,模型建立的时候有个容器用的是list,因此内部所有的参数都没有保存,每一次预测都会重新更新,此处应该用paddle.nn.LayerList
0
收藏
请登录后评论
恢复训练也是,全部都从头开始了,也没有真正的把模型和优化器参数加载进去
我也是傻了,模型建立的时候有个容器用的是list,因此内部所有的参数都没有保存,每一次预测都会重新更新,此处应该用paddle.nn.LayerList