I don't understand how to update the self.softmax() when training, because the acc don't backward. How does it work?