From 4f93ae3dd430c1ae11868dbe9f53aff4eeef6410 Mon Sep 17 00:00:00 2001 From: zhongpu <2013000149@qq.com> Date: Fri, 21 Feb 2020 19:01:27 +0800 Subject: [PATCH] expose load_program_state and set_program_state api_cn (#1769) * expose load_program_state and set_program_state api, test=develop * polist api comment, test=develop --- doc/fluid/api_cn/io_cn.rst | 2 + .../api_cn/io_cn/load_program_state_cn.rst | 35 +++++++++++++++++ .../api_cn/io_cn/set_program_state_cn.rst | 38 +++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 doc/fluid/api_cn/io_cn/load_program_state_cn.rst create mode 100644 doc/fluid/api_cn/io_cn/set_program_state_cn.rst diff --git a/doc/fluid/api_cn/io_cn.rst b/doc/fluid/api_cn/io_cn.rst index c30e18d1b..5115abb0d 100644 --- a/doc/fluid/api_cn/io_cn.rst +++ b/doc/fluid/api_cn/io_cn.rst @@ -21,6 +21,7 @@ fluid.io io_cn/load_inference_model_cn.rst io_cn/load_params_cn.rst io_cn/load_persistables_cn.rst + io_cn/load_program_state_cn.rst io_cn/load_vars_cn.rst io_cn/map_readers_cn.rst io_cn/multiprocess_reader_cn.rst @@ -30,6 +31,7 @@ fluid.io io_cn/save_params_cn.rst io_cn/save_persistables_cn.rst io_cn/save_vars_cn.rst + io_cn/set_program_state_cn.rst io_cn/shuffle_cn.rst io_cn/xmap_readers_cn.rst diff --git a/doc/fluid/api_cn/io_cn/load_program_state_cn.rst b/doc/fluid/api_cn/io_cn/load_program_state_cn.rst new file mode 100644 index 000000000..bee50c077 --- /dev/null +++ b/doc/fluid/api_cn/io_cn/load_program_state_cn.rst @@ -0,0 +1,35 @@ +.. _cn_api_fluid_io_load_program_state: + +load_program_state +------------------------------- + +.. py:function:: paddle.fluid.io.load_program_state(model_path, var_list=None) + +该接口从本地加载 ``Program`` 的参数和优化器的变量信息到内存中。 + +参数: + - **model_path** (str) - 存储 ``Program`` 的参数和优化器的变量信息的目录名称+文件前缀,格式为 ``目录名称/文件前缀`` 。 + - **var_list** (list, 可选) - 指定加载的变量列表,该参数只在加载旧接口[save_params,save_persistables,save_vars]保存的模型文件时使用。当加载的是多个小文件时,变量列表可以是所有加载文件中变量的子集;当加载的单个大文件时,变量列表必须和加载文件中的变量保持一致。 + +返回:存储参数和优化器信息的dict + +返回类型:dict + +**代码示例** + +.. code-block:: python + + import paddle.fluid as fluid + + x = fluid.data( name="x", shape=[10, 10], dtype='float32') + y = fluid.layers.fc( x, 10) + z = fluid.layers.fc( y, 10) + + place = fluid.CPUPlace() + exe = fluid.Executor(place) + exe.run( fluid.default_startup_program() ) + prog = fluid.default_main_program() + + fluid.save( prog, "./temp") + program_state = fluid.load_program_state( "./temp") + diff --git a/doc/fluid/api_cn/io_cn/set_program_state_cn.rst b/doc/fluid/api_cn/io_cn/set_program_state_cn.rst new file mode 100644 index 000000000..668c7fb5f --- /dev/null +++ b/doc/fluid/api_cn/io_cn/set_program_state_cn.rst @@ -0,0 +1,38 @@ +.. _cn_api_fluid_io_set_program_state: + +set_program_state +------------------------------- + +.. py:function:: paddle.fluid.io.set_program_state(program, state_dict) + +利用 ``state_dict`` 设置 ``Program`` 的参数和优化器信息。 + +如果参数的 shape 或 dtype 不匹配,则会引发异常。 + +**注意:必须在运行 start_up_program 之后调用此函数。** + +参数: + - **program** (Program) - 需要被设置的 ``Program`` 。 + - **state_dict** (dict) - 存储参数和优化器信息的dict;dict中key的类型为变量的名称,value为np.ndarray类型的数据。 + +返回:无 + +**代码示例** + +.. code-block:: python + + import paddle.fluid as fluid + + x = fluid.data( name="x", shape=[10, 10], dtype='float32') + y = fluid.layers.fc( x, 10) + z = fluid.layers.fc( y, 10) + + place = fluid.CPUPlace() + exe = fluid.Executor(place) + exe.run( fluid.default_startup_program() ) + prog = fluid.default_main_program() + + fluid.save( prog, "./temp") + program_state = fluid.load_program_state( "./temp") + fluid.set_program_state( prog, program_state) + -- GitLab