nn.NLLLoss expects log probabilities as the model output, so you should replace the nn.Softmax layer with nn.LogSoftmax.
Could you also explain, what “a good precision and not correct results” mean? Do you think the accuracy calculation is wrong or what kind of values are you seeing?