executor.rst 1.6 KB
Newer Older
T
Tink_Y 已提交
1 2 3 4 5 6
..  _api_guide_executor:

##########
执行引擎
##########

A
acosta123 已提交
7
:code:`Executor` 实现了一个简易的执行器,所有的操作在其中顺序执行。你可以在Python脚本中运行:code:`Executor`。PaddlePaddle Fluid中有两种执行器。一种是:code:`Executor` 默认的单线程执行器,另一种是并行计算执行器,在:ref:`api_guide_parallel_executor`中进行了解释。`Executor`和:ref:`api_guide_parallel_executor`的配置不同,这可能会给部分用户带来困惑。为使执行器更加灵活,我们引入了:ref:`api_guide_compiled_program`,:ref:`api_guide_compiled_program`用于把一个程序转换为不同的优化组合,可以通过:code:`Executor`运行。
T
Tink_Y 已提交
8

A
acosta123 已提交
9
:code:`Executor`的逻辑非常简单。建议在调试阶段用:code:`Executor`在一台计算机上完整地运行模型,然后转向多设备或多台计算机计算。
T
Tink_Y 已提交
10

A
acosta123 已提交
11
:code:`Executor`在构造时接受一个:code:`Place`,它既可能是:ref:`api_fluid_CPUPlace`也可能是:ref:`api_fluid_CUDAPlace`。
T
Tink_Y 已提交
12

A
acosta123 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
.. 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])
简单样例请参照 `quick_start_fit_a_line <http://paddlepaddle.org/documentation/docs/zh/1.1/beginners_guide/quick_start/fit_a_line/README.html>`_ 

- 相关API :
 - :ref:`cn_api_fluid_Executor`