gradients

查看属性与别名

API属性:声明式编程(静态图)专用API

paddle.fluid.gradients ( targets, inputs, target_gradients=None, no_grad_set=None ) [源代码]

将目标梯度反向传播到输入。

参数

  • targets (Variable|list[Variable]) – 目标变量
  • inputs (Variable|list[Variable]) – 输入变量
  • target_gradients (Variable|list[Variable]|None) – 目标的梯度变量,应与目标变量形状相同;如果设置为None,则以1初始化所有梯度变量
  • no_grad_set (set[string]) – 在Block 0中不具有梯度的变量,所有block中被设置 stop_gradient=True 的变量将被自动加入该set

返回

数组,包含与输入对应的梯度。如果一个输入不影响目标函数,则对应的梯度变量为None

返回类型

(list[Variable])

代码示例

  1. import paddle.fluid as fluid
  2. x = fluid.data(name='x', shape=[None,2,8,8], dtype='float32')
  3. x.stop_gradient=False
  4. y = fluid.layers.conv2d(x, 4, 1, bias_attr=False)
  5. y = fluid.layers.relu(y)
  6. y = fluid.layers.conv2d(y, 4, 1, bias_attr=False)
  7. y = fluid.layers.relu(y)
  8. z = fluid.gradients([y], x)
  9. print(z)