I'm trying to write my first code in multi-class classification problem using Pytorch model and this error appeared in training loop. Could you tell me how can I fix this error The Model: import torch from torch import nn torch.manual_seed(1234) class nn_model(nn.Module): def __init__(self): super().__init__() self.layer1 = nn.Linear(len(X_train.columns), 128) self.layer2 = nn.Linear(128, 64) self.layer3 = nn.Linear(64, 1) self.relu = nn.ReLU() self.softmax = nn.Softmax() def forward(self, x): x = self.relu(self.layer1(x)) x = self.relu(self.layer2(x)) x = self.sigmoid(self.layer3(x)) return x model = nn_model() model.state_dict() used loss function and optimizer: optimizer = torch.optim.Adam(lr=0.001, params=model.parameters()) loss_function = torch.nn.CrossEntropyLoss() The training and testing loop: epochs = 10000 for epoch in range(1, epochs + 1): # Training loop model.train() # 1. Do the forward pass y_pred = model(torch.tensor(np.array(X_train)).float()) # 2. Calculate the loss loss = loss_function(torch.round(y_pred).float(), torch.tensor(np.array(y_train)).long()) # 3. Optimizer Zero grad optimizer.zero_grad() # 4. Loss Backward loss.backward() # 5. Optimizer Step optimizer.step() if epoch % 1000 == 0: model.eval() with torch.inference_mode(): y_pred_val = model(torch.tensor(np.array(X_cross_val))) loss_val = loss_function(torch.round(y_pred_val).long(), torch.tensor(np.array(y_cross_val)).long()) print(f'Epoch: {epoch} | Loss: {loss_val:4f}') Continue reading...