paddle.Model.load加载模型继续训练时出现Optimizer set error
收藏
定义了一个非常简单的网络,训练之后,使用model.save(path)保存,
再次model.load(path)加载模型继续训练的时候,出现了如下错误
AssertionError: Optimizer set error, linear_18.w_0_moment1_0 should in state dict
请问如何解决,怎样才能正确加载模型继续训练?多谢
环境aistudio,版本paddlepaddle 2.1.2
主要代码如下
def getNet(input_size):
net=paddle.nn.Sequential(
paddle.nn.Linear(input_size, 512),
paddle.nn.ReLU(),
paddle.nn.Linear(512, 100),
paddle.nn.ReLU(),
paddle.nn.Linear(100, 5)
)
model = paddle.Model(net)
model.prepare(optimizer=paddle.optimizer.Adam(learning_rate=0.01,parameters=model.parameters()),
loss=paddle.nn.MSELoss(),
metrics=paddle.metric.Accuracy())
return model
myModel=getNet(10)
myModel.fit(dataset)
myModel.save('abc')
#继续训练时
myModel=getNet(10)
myModel.load('abc')
myModel.fit(dataset)
#出现如下错误
#AssertionError: Optimizer set error, linear_18.w_0_moment1_0 should in state dict
0
收藏
请登录后评论
查看一下优化器是不是和之前的一样,好像是优化器设置错误了
问题已经解决,参照官网上的示例
继续训练的顺序
1.组网
2.load已有参数
3.pareare
这个是什么原因啊,怎么改,我也出现这个问题了,没看懂你改了什么地方
就是应该先调用load() 然后再调用prepare() 顺序反过来就不行