Why any numerical operations on nn.Parameter return nn.Tensor?

import torch
import torch.nn as nn
learning_alpha = torch.ones(1)
learning_beta = torch.zeros(1)
learning_alpha = nn.Parameter(learning_alpha)
learning_beta = nn.Parameter(learning_beta)

c = learning_alpha + learning_beta
print(type(c))

<class 'torch.Tensor'>

Hi,

nn.Parameter are just a Tensor subclass for nn.Module to know what is a parameter there or not. But there is no need for them to remain Parameters and they can be used just as any regular Tensor.