Gradients#

ivy.bind_custom_gradient_function(func, custom_grad_func)[source]#

Bind a custom gradient function to a function.

Parameters:
  • func – Function for which we compute the gradients of the output with respect to.

  • custom_grad_func – Custom gradient function. Should accept a tuple containing the (output, inputs) and the upstream gradients w.r.t previous operations.

Returns:

ret – the function

ivy.jvp(func, primals, tangents)[source]#

Compute a (forward-mode) Jacobian-vector product of func.

Parameters:
  • func (callable) – Function to be differentiated.

  • primals – sequence of primal values at which the Jacobian of func should be evaluated.

  • tangents – sequence of tangent vectors giving the Jacobian-vector product of func evaluated at primals.

Returns:

ret – The output of func evaluated at primals. And the Jacobian-vector product of function evaluated at primals with tangents.

ivy.vjp(func, *primals)[source]#

Compute a (reverse-mode) vector-Jacobian product of func.

Parameters:
  • func (callable) – Function to be differentiated.

  • primals – sequence of primal values at which the Jacobian of func should be evaluated.

Returns:

ret – The output of func evaluated at primals. And a function from a cotangent vector representing the vector-Jacobian product of fun evaluated at primals.