In many blogpost and discussion section it is said that by default F.backward() is equivalent as F.backward(gradient=torch.Tensor([1.])). But looking at the implementation of tensor.py and autograd.backward() implementation the default value for external gradient is none i.e
#tensor.py
def backward(self, gradient=None, retain_graph=None, create_graph=False):
    ...

#autograd.backward
def backward(
    tensors: _TensorOrTensors,
    grad_tensors: Optional[_TensorOrTensors] = None,
    ....
):
    ...

So, when is the gradient set to default torch.Tensor([1.]) ??
Also, what will be difference telling that:  1) F.backward() is equivalent as F.backward(gradient=torch.Tensor([1.]))
2) F.backward() is equal as F.backward(gradient=torch.Tensor([1.]))