tf.hessians(ys, xs, name='hessians', colocate_gradients_with_ops=False, gate_gradients=False, aggregation_method=None)

tf.hessians(ys, xs, name='hessians', colocate_gradients_with_ops=False, gate_gradients=False, aggregation_method=None)

See the guide: Training > Gradient Computation

Constructs the Hessian of sum of ys with respect to x in xs.

hessians() adds ops to the graph to output the Hessian matrix of ys with respect to xs. It returns a list of Tensor of length len(xs) where each tensor is the Hessian of sum(ys). This function currently only supports evaluating the Hessian with respect to (a list of) one- dimensional tensors.

The Hessian is a matrix of second-order partial derivatives of a scalar tensor (see https://en.wikipedia.org/wiki/Hessian_matrix for more details).

Args:

  • ys: A Tensor or list of tensors to be differentiated.
  • xs: A Tensor or list of tensors to be used for differentiation.
  • name: Optional name to use for grouping all the gradient ops together. defaults to 'hessians'.
  • colocate_gradients_with_ops: See gradients() documentation for details.
  • gate_gradients: See gradients() documentation for details.
  • aggregation_method: See gradients() documentation for details.

Returns:

A list of Hessian matrices of sum(y) for each x in xs.

Raises:

  • LookupError: if one of the operations between xs and ys does not have a registered gradient function.
  • ValueError: if the arguments are invalid or not supported. Currently, this function only supports one-dimensional x in xs.

Defined in tensorflow/python/ops/gradients_impl.py.