grad¶
- paddle.incubate.autograd. grad ( outputs, inputs, grad_outputs=None ) [source]
-
Reverse mode of automatic differentiation.
Note
ONLY available in the static graph mode and primitive operators
- Parameters
-
outputs (Tensor|Sequence[Tensor]) – The output Tensor or Tensors.
inputs (Tensor|Sequence[Tensor]) – The input Tensor or Tensors.
grad_outputs (Tensor|Sequence[Tensor]) – Optional, the gradient Tensor or Tensors of outputs which has the same shape with outputs, Defaults to None, in this case is equivalent to all ones.
- Returns
-
The gradients for inputs.
- Return type
-
grad_inputs(Tensor|Tensors)
Examples
import numpy as np import paddle paddle.enable_static() paddle.incubate.autograd.enable_prim() startup_program = paddle.static.Program() main_program = paddle.static.Program() with paddle.static.program_guard(main_program, startup_program): x = paddle.static.data('x', shape=[1], dtype='float32') x.stop_gradients = False y = x * x x_grad = paddle.incubate.autograd.grad(y, x) paddle.incubate.autograd.prim2orig() exe = paddle.static.Executor() exe.run(startup_program) x_grad = exe.run(main_program, feed={'x': np.array([2.]).astype('float32')}, fetch_list=[x_grad]) print(x_grad) # [array([4.], dtype=float32)] paddle.incubate.autograd.disable_prim() paddle.disable_static()