What's the difference between sum and torch.sum for a torch Tensor?
I get the same results when using either the python sum or torch.sum so why did torch implement a sum function? Is there a difference between them?

nothing, torch.sum calls tensor.sum and python's sum calls __add__ (or __radd__ when needed) which calls tensor.sum again

so the only difference is in the number of function calls, and tensor.sum() should be the fastest (when you have small tensors and the function call's overhead is considerable)
