Solved by tom in post #2 
              
              
                You hardly ever need one hot labels, I don’t think you need them here. Also, I would use torch.nn.functional.cross_entropy_loss instead of re-instantiating the module over and over. You do need predictions, but these are per-class encoded anyways. 
You would want to use log_softmax rather than soft…