load

paddle.fluid.dygraph. load_dygraph ( model_path, **configs ) [源代码]

该接口用于从磁盘中加载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")