首页 Paddle框架 帖子详情
模型保存和加载
收藏
快速回复
Paddle框架 问答模型训练 1905 8
模型保存和加载
收藏
快速回复
Paddle框架 问答模型训练 1905 8

做人脸分割时,模型训练后使用paddle.save(model.state_dict(), model_path)保存模型,然后预测时通过model.load_dict(paddle.load(model_path))加载模型参数,但是预测结果相差很大。

我在训练时,直接用训练的模型预测了一张图,结果还算比较好,但是用保存的参数来预测,效果直接炸裂,如下图所示:

先说明一下就是,保存模型参数和加载模型参数时model.train()和model.eval()这个都试过了,还是一样,训练时很好,预测很差。有大神指点一下吗?

0
收藏
回复
全部评论(8)
时间顺序
FutureSI
#2 回复于2021-07

预测试模型设为eval模式,用 Layer.eval()

0
回复
FutureSI
#3 回复于2021-07

没看到最后一句,哈哈。

我刚解决了一个此类问题,思路就是直接用train的代码跑预测,只是关掉梯度更新,白骨精就很容易现形了~~

1
回复
小姐姐都是我的
#4 回复于2021-07

解决了是吗

0
回复
花花的疯人院
#5 回复于2021-07
解决了是吗

不算解决了。后来我是将只保存模型参数改为了保存整个模型,就是将paddle.save(model.state_dict(), model_path)改为paddle.save(model, model_path),后续预测时直接用model=paddle.load(model_path)就行,这样得到的预测结果跟训练时是一样的。

1
回复
Mr Liu
#6 回复于2022-01
不算解决了。后来我是将只保存模型参数改为了保存整个模型,就是将paddle.save(model.state_dict(), model_path)改为paddle.save(model, model_path),后续预测时直接用model=paddle.load(model_path)就行,这样得到的预测结果跟训练时是一样的。
展开

我使用paddle.save(model,path)报错了。你是怎么做的,能贴一下样例代码吗

0
回复
1
1321842068
#7 回复于2022-03
不算解决了。后来我是将只保存模型参数改为了保存整个模型,就是将paddle.save(model.state_dict(), model_path)改为paddle.save(model, model_path),后续预测时直接用model=paddle.load(model_path)就行,这样得到的预测结果跟训练时是一样的。
展开

请问使用 paddle.save(model, model_path)  这个方法不会报错吗?

0
回复
fi_Past
#8 回复于2022-03
请问使用 paddle.save(model, model_path)  这个方法不会报错吗?

我之前好像会报错,只保存权重可以

0
回复
s
sdw
#9 回复于2022-05
Mr Liu #6
我使用paddle.save(model,path)报错了。你是怎么做的,能贴一下样例代码吗

能看一下这部分的实现吗?paddle.save(model)会报错

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户