Solved by ptrblck in post #3 
              
              
                nn.CrossEntropyLoss uses F.log_softmax and nn.NLLLoss internally. 
Since you are using softmax as your last activation, note that log_softmax will be applied on these activations again in the criterion. 
Could you remove the softmax and rerun the code, please?