precision, e.g., "FloatTensor".
Warning:
 If any checked tensor in "input" and "grad_outputs" has
 overlapping memory, i.e., different indices pointing to the same
 memory address (e.g., from "torch.expand()"), this check will
 likely fail because the numerical gradients computed by point
 perturbation at such indices will change values at all other
 indices that share the same memory address.

Parameters:
      * func (function) -- a Python function that takes Tensor
        inputs and returns a Tensor or a tuple of Tensors
  * **inputs** (*tuple of Tensor** or **Tensor*) -- inputs to the
    function

  * **grad_outputs** (*tuple of Tensor** or **Tensor**,
    **optional*) -- The gradients with respect to the function's
    outputs.

  * **eps** (*float**, **optional*) -- perturbation for finite
    differences

  * **atol** (*float**, **optional*) -- absolute tolerance

  * **rtol** (*float**, **optional*) -- relative tolerance
