BackwardStrategy_cn.rst 1.3 KB
Newer Older
H
Hao Wang 已提交
1 2 3 4 5
.. _cn_api_fluid_dygraph_BackwardStrategy:

BackwardStrategy
-------------------------------

6 7
**注意:该API仅支持【动态图】模式**

H
Hao Wang 已提交
8 9
.. py:class:: paddle.fluid.dygraph.BackwardStrategy

J
Jiabin Yang 已提交
10
**注意:该API只在动态图下生效**
H
Hao Wang 已提交
11

J
Jiabin Yang 已提交
12 13 14 15 16 17 18 19
BackwardStrategy是描述动态图反向执行的策略,主要功能是定义动态图反向执行时的不同策略

**属性:**

.. py:attribute:: sort_sum_gradient

是否按照前向执行的逆序加和多个梯度,例如当 x_var( :ref:`api_guide_Variable` )作为多个OP(这里以 :ref:`cn_api_fluid_layers_scale` 为例)的输入时,其产生的梯度是否按照前向书写时的
逆序加和,默认为False
H
Hao Wang 已提交
20 21 22 23 24 25 26 27 28 29 30


**代码示例**

.. code-block:: python

    import numpy as np
    import paddle.fluid as fluid

    x = np.ones([2, 2], np.float32)
    with fluid.dygraph.guard():
J
Jiabin Yang 已提交
31 32 33
        x_var = fluid.dygraph.to_variable(x)
        sums_inputs = []
        # 这里x_var将作为多个输入scale的输入
H
Hao Wang 已提交
34
        for _ in range(10):
J
Jiabin Yang 已提交
35 36
            sums_inputs.append(fluid.layers.scale(x_var))
        ret2 = fluid.layers.sums(sums_inputs)
H
Hao Wang 已提交
37 38 39 40 41 42 43 44
        loss2 = fluid.layers.reduce_sum(ret2)
        backward_strategy = fluid.dygraph.BackwardStrategy()
        backward_strategy.sort_sum_gradient = True
        loss2.backward(backward_strategy)




J
Jiabin Yang 已提交
45 46