模型保存和加载
收藏
做人脸分割时,模型训练后使用paddle.save(model.state_dict(), model_path)保存模型,然后预测时通过model.load_dict(paddle.load(model_path))加载模型参数,但是预测结果相差很大。
我在训练时,直接用训练的模型预测了一张图,结果还算比较好,但是用保存的参数来预测,效果直接炸裂,如下图所示:
先说明一下就是,保存模型参数和加载模型参数时model.train()和model.eval()这个都试过了,还是一样,训练时很好,预测很差。有大神指点一下吗?
0
收藏
请登录后评论
预测试模型设为eval模式,用 Layer.eval()
没看到最后一句,哈哈。
我刚解决了一个此类问题,思路就是直接用train的代码跑预测,只是关掉梯度更新,白骨精就很容易现形了~~
解决了是吗
不算解决了。后来我是将只保存模型参数改为了保存整个模型,就是将paddle.save(model.state_dict(), model_path)改为paddle.save(model, model_path),后续预测时直接用model=paddle.load(model_path)就行,这样得到的预测结果跟训练时是一样的。
我使用paddle.save(model,path)报错了。你是怎么做的,能贴一下样例代码吗
请问使用 paddle.save(model, model_path) 这个方法不会报错吗?
我之前好像会报错,只保存权重可以
能看一下这部分的实现吗?paddle.save(model)会报错