执行引擎
Executor
实现了一个简易的执行器,所有的操作在其中顺序执行。你可以在 Python 脚本中运行 Executor
。PaddlePaddle Fluid 中有两种执行器。一种是 Executor
默认的单线程执行器,另一种是并行计算执行器,在 数据并行执行引擎 中进行了解释。Executor
和 数据并行执行引擎 的配置不同,这可能会给部分用户带来困惑。为使执行器更加灵活,我们引入了 CompiledProgram , CompiledProgram 用于把一个程序转换为不同的优化组合,可以通过 Executor
运行。
Executor
的逻辑非常简单。建议在调试阶段用 Executor
在一台计算机上完整地运行模型,然后转向多设备或多台计算机计算。
Executor
在构造时接受一个 Place
,它既可能是 api_fluid_CPUPlace 也可能是 api_fluid_CUDAPlace 。
System Message: ERROR/3 (/FluidDoc/docs/api_guides/low_level/executor.rst, line 13)
Error in “code-block” directive: maximum 1 argument(s) allowed, 17 supplied.
.. code-block:: python
# 首先创建 Executor。
place = fluid.CUDAPlace(0) if use_cuda else fluid.CPUPlace()
exe = fluid.Executor(place)
# 运行启动程序仅一次。
exe.run(fluid.default_startup_program())
# 直接运行主程序。
loss, = exe.run(fluid.default_main_program(),
feed=feed_dict,
fetch_list=[loss.name])
System Message: WARNING/2 (/FluidDoc/docs/api_guides/low_level/executor.rst, line 24)
Explicit markup ends without a blank line; unexpected unindent.
简单样例请参照 basics_fit_a_line
System Message: WARNING/2 (/FluidDoc/docs/api_guides/low_level/executor.rst, line 27)
Bullet list ends without a blank line; unexpected unindent.