Your Y_train is just the entire label column from your pandas dataset, which has the shape {1133} (your batch_size). The output from your network is of the shape {1133, 1}, because the last nn.Linear layer takes a 2d-tensor of the shape {batch_size, in_feature}, in this case {1133, 32} and returns a tensor of shape  {batch_size, out_feature}, so {1133, 1}. [self.layerOutput = nn.Linear(32, 1)]
If you now calculate the loss, you will get a warning because of the shape difference. Either just add a new dimension to your Y_train tensor at the end using:
Y_train = torch.FloatTensor(y_temp)[..., None]
OR
Y_train = torch.FloatTensor(y_temp).unsqueeze(-1)

or remove the last dimension of your output
y_output_pred = y_output_pred[..., 0]
OR
y_output_pred= y_output_pred).squeeze(-1)



To validate your network, you normally set it to validate mode (deactivate Dropout and BatchNorm) and    deactivate the gradient tracking:
net.eval()
with torch.no_grad():
    test_out = net(X_test)
    loss = criterion(test_out, y_test)



Just one question, why dont you use the DataLoader you defined?