torch.autograd.graph.Node.register_hook
abstract Node.register_hook(fn)
Registers a backward hook.
The hook will be called every time a gradient with respect to the
   Node is computed. The hook should have the following signature:
  hook(grad_inputs: Tuple[Tensor], grad_outputs: Tuple[Tensor]) -> Tuple[Tensor] or None

The hook should not modify its argument, but it can optionally
   return a new gradient which will be used in place of
   "grad_outputs".
This function returns a handle with a method "handle.remove()" that
   removes the hook from the module.
Note:
 See Backward Hooks execution for more information on how when
 this hook is executed, and how its execution is ordered relative
 to other hooks.

Example:
  >>> import torch
  >>> a = torch.tensor([0., 0., 0.], requires_grad=True)
  >>> b = a.clone()
  >>> assert isinstance(b.grad_fn, torch.autograd.graph.Node)
