You don’t need to normalize the inputs, but it usually help training the model.
torchvision.transforms.ToTensor() and torchvision.transforms.functional.to_tensor() are applying the same transformation via an object or the functional API (ToTensor calls internally into to_tensor as seen here 1).
Normalize subtracts the mean and divides by the stddev to create an output with zero mean and unit variance, so the observed values would be expected.