Based on the docs your output and target might be wrong:

As with  NLLLoss  2, the input given is expected to contain  log-probabilities  and is not restricted to a 2D Tensor. The targets are given as  probabilities  (i.e. without taking the logarithm).

You should probably change the last nn.Softmax activation to nn.LogSoftmax and make sure the target values are a probability distribution.