load

paddle.load ( path, \*configs* ) [源代码]

从指定路径载入可以在paddle中使用的对象实例。

注解

目前仅支持载入 Layer 或者 Optimizer 的 state_dict

注解

为了更高效地使用paddle存储的模型参数, paddle.load 支持从除 paddle.save 之外的其他save相关API的存储结果中载入 state_dict ,但是在不同场景中,参数 path 的形式有所不同: 1. 从 paddle.static.save 或者 paddle.Model().save(training=True) 的保存结果载入: path 需要是完整的文件名,例如 model.pdparams 或者 model.opt ; 2. 从 paddle.jit.save 或者 paddle.static.save_inference_model 或者 paddle.Model().save(training=False) 的保存结果载入: path 需要是路径前缀, 例如 model/mnistpaddle.load 会从 mnist.pdmodelmnist.pdiparams 中解析 state_dict 的信息并返回。 3. 从paddle 1.x API paddle.fluid.io.save_inference_model 或者 paddle.fluid.io.save_params/save_persistables 的保存结果载入: path 需要是目录,例如 model ,此处model是一个文件夹路径。

注解

如果从 paddle.static.save 或者 paddle.static.save_inference_model 等静态图API的存储结果中载入 state_dict ,动态图模式下参数的结构性变量名将无法被恢复。在将载入的 state_dict 配置到当前Layer中时,需要配置 Layer.set_state_dict 的参数 use_structured_name=False

参数

  • path (str) – 载入目标对象实例的路径。通常该路径是目标文件的路径,当从用于存储预测模型API的存储结果中载入state_dict时,该路径可能是一个文件前缀或者目录。

  • **config (dict, 可选) - 其他用于兼容的载入配置选项。这些选项将来可能被移除,如果不是必须使用,不推荐使用这些配置选项。默认为 None。目前支持以下配置选项:(1) model_filename (str) - paddle 1.x版本 save_inference_model 接口存储格式的预测模型文件名,原默认文件名为 __model__ ; (2) params_filename (str) - paddle 1.x版本 save_inference_model 接口存储格式的参数文件名,没有默认文件名,默认将各个参数分散存储为单独的文件。

返回

Object,一个可以在paddle中使用的对象实例

代码示例

  1. import paddle
  2. emb = paddle.nn.Embedding(10, 10)
  3. layer_state_dict = emb.state_dict()
  4. paddle.save(layer_state_dict, "emb.pdparams")
  5. scheduler = paddle.optimizer.lr.NoamDecay(
  6. d_model=0.01, warmup_steps=100, verbose=True)
  7. adam = paddle.optimizer.Adam(
  8. learning_rate=scheduler,
  9. parameters=emb.parameters())
  10. opt_state_dict = adam.state_dict()
  11. paddle.save(opt_state_dict, "adam.pdopt")
  12. load_layer_state_dict = paddle.load("emb.pdparams")
  13. load_opt_state_dict = paddle.load("adam.pdopt")