the output layer should not go through activation, and just a softmax