首页 Paddle框架 帖子详情
增量训练中,如何保存模型和恢复训练? 已解决
收藏
快速回复
Paddle框架 问答模型训练深度学习 840 1
增量训练中,如何保存模型和恢复训练? 已解决
收藏
快速回复
Paddle框架 问答模型训练深度学习 840 1

增量训练中,如何保存模型和恢复训练?

旧鸱c_
已解决
2# 回复于2021-08
在增量训练过程中,不仅需要保存模型的参数,也需要保存优化器的参数。 具体地,在2.0版本中需要使用Layer和Optimizer的state_dict和set_state_dict方法配合paddle.save/load使用。简要示例如下: import paddle emb = paddle.nn.Embedding(10, 10) layer_state_dict = emb.state_dict() paddle.save(layer_state_dict, "emb.pdparams") scheduler = paddle.optimizer.lr.NoamDecay( d_model=0.01, warmup_steps=100, verbose=True) adam = paddle.optimizer.Adam( learning_rate=scheduler, parameters=emb.parameters()) opt_state_dict = adam.state_dict() paddle.save(opt_state_dict, "adam.pdopt") load_layer_state_dict = paddle.load("emb.pdparams") load_opt_state_dict = paddle.load("adam.pdopt") emb.set_state_dict(para_state_dict) adam.set_state_dict(opti_state_dict)
展开
0
收藏
回复
全部评论(1)
时间顺序
旧鸱c_
#2 回复于2021-08

在增量训练过程中,不仅需要保存模型的参数,也需要保存优化器的参数。
具体地,在2.0版本中需要使用Layer和Optimizer的state_dict和set_state_dict方法配合paddle.save/load使用。简要示例如下:

import paddle

emb = paddle.nn.Embedding(10, 10)
layer_state_dict = emb.state_dict()
paddle.save(layer_state_dict, "emb.pdparams")

scheduler = paddle.optimizer.lr.NoamDecay(
d_model=0.01, warmup_steps=100, verbose=True)
adam = paddle.optimizer.Adam(
learning_rate=scheduler,
parameters=emb.parameters())
opt_state_dict = adam.state_dict()
paddle.save(opt_state_dict, "adam.pdopt")

load_layer_state_dict = paddle.load("emb.pdparams")
load_opt_state_dict = paddle.load("adam.pdopt")

emb.set_state_dict(para_state_dict)
adam.set_state_dict(opti_state_dict)

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