You use CrossEntropyLoss which according to the documentation:

This criterion combines nn.LogSoftmax()  and nn.NLLLoss()  in one single class.

And your networks outputs a softmax, so thats softmax followed by LogSoftmax, I suggest either use NLLLoss, or remove your last softmax layer
Should you choose to remove the softmax from your model, make sure to adjust the accuracy metrics to accept Logits instead of Probabilities.
Roy