未验证 提交 90bee17a 编写于 作者: Y yuyang18

Follow comments

上级 46f91c1e
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
========================== ==========================
如果我们保存模型的目的是用于对新样本的预测,那么只保存模型参数就足够了。我们可以使用 如果我们保存模型的目的是用于对新样本的预测,那么只保存模型参数就足够了。我们可以使用
:code:`fluid.io.save_params` 接口来进行模型参数的保存。 :ref:`api_fluid_io_save_params` 接口来进行模型参数的保存。
例如: 例如:
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
在训练过程中,我们可能希望在一些节点上将当前的训练状态保存下来, 在训练过程中,我们可能希望在一些节点上将当前的训练状态保存下来,
以便在将来需要的时候恢复训练环境继续进行训练。这一般被称作“checkpoint”。 以便在将来需要的时候恢复训练环境继续进行训练。这一般被称作“checkpoint”。
想要保存checkpoint,可以使用 :code:`fluid.io.save_checkpoint` 接口。 想要保存checkpoint,可以使用 :ref:`api_fluid_io_save_checkpoint` 接口。
例如: 例如:
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
如何载入模型变量 如何载入模型变量
################ ################
与模型变量的保存相对应,我们提供了两套API来分别进行模型的参数和checkpoint的载入 与模型变量的保存相对应,我们提供了两套API来分别载入模型的参数和载入模型的checkpoint
载入模型用于对新样本的预测 载入模型用于对新样本的预测
========================== ==========================
...@@ -152,7 +152,7 @@ ...@@ -152,7 +152,7 @@
上面的例子中,通过调用 :code:`fluid.io.save_checkpoint` 函数,PaddlePaddle Fluid会对 上面的例子中,通过调用 :code:`fluid.io.save_checkpoint` 函数,PaddlePaddle Fluid会对
:code:`prog` 中的所有模型变量进行扫描,根据内置规则自动筛选出需要加载的变量, :code:`prog` 中的所有模型变量进行扫描,根据内置规则自动筛选出需要加载的变量,
并尝试从 :code:`path` 之中读取加载它们。 并尝试从 :code:`path` 之中加载它们。
参数 :code:`serial` 用来标记具体要加载的checkpoint的版本号。在保存checkpoint的时候, 参数 :code:`serial` 用来标记具体要加载的checkpoint的版本号。在保存checkpoint的时候,
一个checkpoint会被保存在一个子目录中,并在目录名上体现出自己的版本号。 一个checkpoint会被保存在一个子目录中,并在目录名上体现出自己的版本号。
......
...@@ -45,9 +45,9 @@ ...@@ -45,9 +45,9 @@
用户配置完模型后,参数初始化操作会被写入到\ 用户配置完模型后,参数初始化操作会被写入到\
:code:`fluid.default_startup_program()` 中。使用 :ref:`api_fluid_Executor` 运行 :code:`fluid.default_startup_program()` 中。使用 :ref:`api_fluid_Executor` 运行
这一程序,即可在全局 :ref:`api_fluid_Scope` 中随机初始化参数。例如: 这一程序,即可在全局 :ref:`api_fluid_global_scope` 中随机初始化参数。例如:
.. code-blocks:: python .. code-block:: python
exe = fluid.Executor(fluid.CUDAPlace(0)) exe = fluid.Executor(fluid.CUDAPlace(0))
exe.run(program=fluid.default_startup_program()) exe.run(program=fluid.default_startup_program())
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
1. feed的数据格式,请参考文章 :ref:`user_guide_feed_data_to_executor`。 1. feed的数据格式,请参考文章 :ref:`user_guide_feed_data_to_executor`。
2. :code:`Executor.run` 的返回值是 :code:`fetch_list=[...]` 的variable值。被fetch\ 2. :code:`Executor.run` 的返回值是 :code:`fetch_list=[...]` 的variable值。被fetch\
的Variable必须是persistable的。 :code:`fetch_list` 可以传入Variable的列表,\ 的Variable必须是persistable的。 :code:`fetch_list` 可以传入Variable的列表,\
也可以传入Varialbe的名字列表。当只Fetch一个对象时,返回值是一个元素。否则,\ 也可以传入Variable的名字列表。当只fetch一个对象时,返回值是一个元素。否则,\
返回一个列表。 返回一个列表。
3. 如果需要取回的数据包含序列信息,可以设置 3. 如果需要取回的数据包含序列信息,可以设置
:code:`exe.run(return_numpy=False, ...)` 直接返回 :ref:`api_guide_lod_tensor` :code:`exe.run(return_numpy=False, ...)` 直接返回 :ref:`api_guide_lod_tensor`
...@@ -105,7 +105,7 @@ ...@@ -105,7 +105,7 @@
这里有几点注意事项: 这里有几点注意事项:
1. :code:`ParallelExecutor` 的构造函数需要指明要执行的 :ref:`api_fluid_Program` , 1. :code:`ParallelExecutor` 的构造函数需要指明要执行的 :ref:`api_fluid_Program` ,
并在执行过程中不能修改。 并在执行过程中不能修改。默认值是 :ref:`api_fluid_default_main_program` 。
2. :code:`ParallelExecutor` 需要明确指定是否使用 CUDA 显卡进行训练。在显卡训练\ 2. :code:`ParallelExecutor` 需要明确指定是否使用 CUDA 显卡进行训练。在显卡训练\
模式下会占用全部显卡。用户可以配置 `CUDA_VISIBLE_DEVICES <http://www.acceleware.com/blog/cudavisibledevices-masking-gpus>`_ 来修改占用\ 模式下会占用全部显卡。用户可以配置 `CUDA_VISIBLE_DEVICES <http://www.acceleware.com/blog/cudavisibledevices-masking-gpus>`_ 来修改占用\
的显卡。 的显卡。
......
...@@ -8,7 +8,9 @@ ...@@ -8,7 +8,9 @@
1. 评价测试不进行反向传播,不优化更新参数。 1. 评价测试不进行反向传播,不优化更新参数。
2. 评价测试执行的操作可以不同。 2. 评价测试执行的操作可以不同。
* 例如 BatchNorm 操作,在训练和测试时执行不同的算法。 * 例如 BatchNorm 操作,在训练和测试时执行不同的算法。
* 评价模型与训练相比可以是完全不同的模型。 * 评价模型与训练相比可以是完全不同的模型。
生成测试 :ref:`api_fluid_Program` 生成测试 :ref:`api_fluid_Program`
...@@ -18,7 +20,7 @@ ...@@ -18,7 +20,7 @@
======================================================================= =======================================================================
:code:`Program.clone()` 方法可以复制出新的 :ref:`api_fluid_Program` 。 通过设置 :code:`Program.clone()` 方法可以复制出新的 :ref:`api_fluid_Program` 。 通过设置
:code:`Program.clone(for_test=True)` 复制出用于测试的操作。简单的使用方法如下: :code:`Program.clone(for_test=True)` 复制含有用于测试的操作Program。简单的使用方法如下:
.. code-block:: python .. code-block:: python
...@@ -46,7 +48,7 @@ ...@@ -46,7 +48,7 @@
分别配置训练 :ref:`api_fluid_Program` 和测试 :ref:`api_fluid_Program` 分别配置训练 :ref:`api_fluid_Program` 和测试 :ref:`api_fluid_Program`
===================================================================== =====================================================================
如果训练程序和测试程序相差较大时,用户也可以完全通过定义两个不同的 如果训练程序和测试程序相差较大时,用户也可以通过完全定义两个不同的
:ref:`api_fluid_Program`,分别进行训练和测试。在PaddlePaddle Fluid中,\ :ref:`api_fluid_Program`,分别进行训练和测试。在PaddlePaddle Fluid中,\
所有的参数都有名字。如果两个不同的操作,甚至两个不同的网络使用了同样名字的参数,\ 所有的参数都有名字。如果两个不同的操作,甚至两个不同的网络使用了同样名字的参数,\
那么他们的值和内存空间都是共享的。 那么他们的值和内存空间都是共享的。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册