What kind of criterion are you using?
If you are using nn.CrossEntropyLoss, you should pass the logits directly (no softmax at the end).
Otherwise if you are using nn.NLLLoss, you should apply F.log_softmax as the last non-linearity.