Why does categorical_crossentropy work in when input is not 1-hot encoded?
The algorithm converts your categorical labels into one hot encode before calculating loss. So you don't have to carry the burden.