Confusing about torch.Tensor and torch.tensor!

torch.Tensor(2) returns tensor([-4.9389e+23, 4.5758e-41]), while torch.tensor(2) returns tensor(2). I coud’t find the manual for torch.Tensor, and it’s very confusing of these two object constructor. What’s the reason to define ‘torch.Tensor’ when ‘torch.tensor’ is already defined?

torch.Tensor uses uninitialized memory, so you shouldn’t use it.
torch.tensor creates a new tensor using the passed values.

I found the usage in torch.nn.batchnorm

        self.weight = Parameter(torch.Tensor(num_features))

So torch.Tensor is not recommended?

Yes, don’t use it.
nn.BatchNorm calls reset_parameters() afterwards, which will initialize these tensors.

Ok, thanks for the reply!