BackwardStrategy

  • class paddle.fluid.dygraph.BackwardStrategy

注意:该API只在动态图下生效

BackwardStrategy是描述动态图反向执行的策略,主要功能是定义动态图反向执行时的不同策略

属性:

  • sort_sum_gradient

是否按照前向执行的逆序加和多个梯度,例如当 x_var( Variable )作为多个OP(这里以 scale 为例)的输入时,其产生的梯度是否按照前向书写时的 逆序加和,默认为False

代码示例

  1. import numpy as np
  2. import paddle.fluid as fluid
  3.  
  4. x = np.ones([2, 2], np.float32)
  5. with fluid.dygraph.guard():
  6. x_var = fluid.dygraph.to_variable(x)
  7. sums_inputs = []
  8. # 这里x_var将作为多个输入scale的输入
  9. for _ in range(10):
  10. sums_inputs.append(fluid.layers.scale(x_var))
  11. ret2 = fluid.layers.sums(sums_inputs)
  12. loss2 = fluid.layers.reduce_sum(ret2)
  13. backward_strategy = fluid.dygraph.BackwardStrategy()
  14. backward_strategy.sort_sum_gradient = True
  15. loss2.backward(backward_strategy)