load¶
该接口用于从磁盘中加载Layer和Optimizer的 state_dict
,该接口会同时加载 model_path + ".pdparams"
和 model_path + ".pdopt"
中的内容。
注解
如果从 paddle.static.save_inference_model
的存储结果中载入 state_dict
,动态图模式下参数的结构性变量名将无法被恢复。并且在将载入的 state_dict
配置到当前Layer中时,需要配置 Layer.set_state_dict
的参数 use_structured_name=False
。
参数¶
model_path (str) – 保存state_dict的文件前缀。该路径不应该包括后缀
.pdparams
或.pdopt
。**config (dict,可选) - 其他用于兼容的载入配置选项。这些选项将来可能被移除,如果不是必须使用,不推荐使用这些配置选项。默认为
None
。目前支持以下配置选项:(1) model_filename (str) - paddle 1.x版本save_inference_model
接口存储格式的预测模型文件名,原默认文件名为__model__
; (2) params_filename (str) - paddle 1.x版本save_inference_model
接口存储格式的参数文件名,没有默认文件名,默认将各个参数分散存储为单独的文件。
返回¶
tuple(dict, dict),两个 dict
,即从文件中恢复的模型参数 dict
和优化器参数 dict
,如果只找到其中一个的存储文件,另一个返回None
param_dict:从文件中恢复的模型参数
dict
opt_dict:从文件中恢复的优化器参数
dict
代码示例¶
import paddle
import paddle.fluid as fluid
paddle.disable_static()
emb = paddle.nn.Embedding(10, 10)
state_dict = emb.state_dict()
fluid.save_dygraph(state_dict, "paddle_dy")
scheduler = paddle.optimizer.lr.NoamDecay(
d_model=0.01, warmup_steps=100, verbose=True)
adam = paddle.optimizer.Adam(
learning_rate=scheduler,
parameters=emb.parameters())
state_dict = adam.state_dict()
fluid.save_dygraph(state_dict, "paddle_dy")
para_state_dict, opti_state_dict = fluid.load_dygraph("paddle_dy")