# On Pytorch Tensors and Autograd

Somehow, Pytorch blitz tutorial on Autograd completely confused me. I could not understand what does `.backward()`

, `.grad`

and `grad_fn`

do.

Fortunately, I found an excellent explanation of Autograd and Computational Graph is here: https://blog.paperspace.com/pytorch-101-understanding-graphs-and-automatic-differentiation/. Just for my notes and anyone interested, I am going to leave my short recap here:

- Computational Graph - records the order of operations on tensors in the graph. Edges of the graph represent the local gradients. Leafs of the graph are independent variables (inputs and weights/biases in case of NN)
`tensor.backward()`

computes the gradients all the way back through the computational graph and accumulate results in leafs. Can only be called on the 0-rank tensor.`tensor.grad`

holds the accumulated gradient from the call to`.backward()`

with respect to the given tensor