恢复训练时出现问题
收藏
我也遇到关于恢复训练的问题,在训练过程中能够保存、重新载入保存文件、评估都没有问题,但是训练结束后单独进行载入、评估,损失就很高,我感觉应该是模型还有东西没有保存始终没有看出问题,不知道哪里出问题了。
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