Are you applying F.log_softmax inside your forward method? nn.CrossEntropyLoss expects logits, as the log softmax will be applied internally. If you pass raw logits directly to nn,NLLLoss, I would assume your model performs worse.
Have you played around with some hyperparameters, e.g. the learning rate?
Is your dataset balanced, i.e. is the class distribution approx. equal?