class Model(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(2,2)
    def forward(self,x):
        x = self.fc1(x)
        x = self.fc1(x)
        return x

Here is my model, as you can see I have defined fc1 just once and using it in my forward function twice sequentially.
So ideally i must get separate weights for the 2 layers in my forward function, but I am getting weights for just 1 layer. Please help!!!
for name,param in model.named_parameters():
    print(name,param, param.shape)

Output:
fc1.weight Parameter containing:
tensor([[ 0.0108, -0.2179],
        [ 0.5695, -0.1553]], requires_grad=True) torch.Size([2, 2])
fc1.bias Parameter containing:
tensor([ 0.4658, -0.6482], requires_grad=True) torch.Size([2])