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() 顺序反过来就不行