首页 Paddle框架 帖子详情
BatchNorm在训练时加载预测时保存的模型参数时报错 已解决
收藏
快速回复
Paddle框架 其他模型训练 616 1
BatchNorm在训练时加载预测时保存的模型参数时报错 已解决
收藏
快速回复
Paddle框架 其他模型训练 616 1

BatchNorm在训练时加载预测时保存的模型参数时报错:AssertionError: Optimizer set error, batch_norm_1.w_0_moment_0 should in state dict.

分析原因:BatchNorm在train模式和eval模式下需要的变量有差别,在train模式下要求传入优化器相关的变量,在eval模式下不管是保存参数还是加载参数都是不需要优化器相关变量的,因此如果在train模式下加载eval模式下保存的checkpoint,没有优化器相关的变量则会报错。

 

 

DeepGeGe
已解决
2# 回复于2021-12
如果想在train模式下加载eval模式下保存的checkpoint的话,用 paddle.load 加载进来参数之后,通过 set_state_dict 接口把参数赋值给模型: [代码]
展开
0
收藏
回复
全部评论(1)
时间顺序
DeepGeGe
#2 回复于2021-12

如果想在train模式下加载eval模式下保存的checkpoint的话,用 paddle.load 加载进来参数之后,通过 set_state_dict 接口把参数赋值给模型:

import paddle

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