class grad(fun, argnum=None)[source]

Bases: object

Returns the gradient as a callable function of (functions of) QNodes.

Function arguments with the property requires_grad set to False will automatically be excluded from the gradient computation, unless the argnum keyword argument is passed.

When the output gradient function is executed, both the forward pass and the backward pass will be performed in order to compute the gradient. The value of the forward pass is available via the forward property.

Parameters
• func (function) – a plain QNode, or a Python function that contains a combination of quantum and classical nodes

• argnum (int, list(int), None) – Which argument(s) to take the gradient with respect to. By default, the arguments themselves are used to determine differentiability, by examining the requires_grad property.

Returns

The function that returns the gradient of the input function with respect to the differentiable arguments, or, if specified, the arguments in argnum.

Return type

function

 forward The result of the forward pass calculated while performing backpropagation.
forward

The result of the forward pass calculated while performing backpropagation. Will return None if the backpropagation has not yet been performed.

Type

float

 __call__(*args, **kwargs) Evaluates the gradient function, and saves the function value calculated during the forward pass in forward.
__call__(*args, **kwargs)[source]

Evaluates the gradient function, and saves the function value calculated during the forward pass in forward.