PyTorch ValueError: optimizer got an empty parameter list when building a Logistic Regression Model
21:34 15 Feb 2026

I tried making a logistic regression model using nn.Module

class LogisticRegressionModel(nn.Module):
    def __init__(self, input_dim= None) -> None:
        super().__init__()
        if input_dim is not None:
            torch.manual_seed(9)
            self.linear = nn.Linear(in_features=input_dim, out_features=1)
        else:
            self.linear = None
            self.input_dim = None
        
    def forward(self, X: Tensor):
        if self.linear is None:
            input_dim = X.shape[1]
            torch.manual_seed(9)
            self.linear = nn.Linear(in_features=input_dim, out_features=1)
            
        return torch.sigmoid(self.linear(X))

Given that in the training, I use nn.BCEWithLogitsLoss() and optim.SGD(params= model.parameters(), lr= 0.001) as my loss function and optimizer

Now when i make an instance and start training i get ValueError: optimizer got an empty parameter list

python optimization deep-learning pytorch neural-network