I would recommend to validate the results manually and make sure the training and test accuracy are correctly calculated. Sometimes when you are facing zero losses or a zero accuracy, the calculation might have created an overflow or is rounding to zero etc.
Also, nn.CrossEntropyLoss expects raw logits as the model output, while you are creating log probabilities.
Remove the nn.LogSoftmax or use nn.NLLLoss instead or nn.CrossEntropyLoss.