Thing is, I get better results if I train the same model using 20 individual sigmoid units at the output layer and a 'binary_crossentropy' loss function! It gives me a whopping 99% validation accuracy:

1 Answer
1

For your problem, the good metric is the categorical_accuracy. What happens is that when you set the loss to be binary_crossentropy and metrics to accuracy then keras assumes that the good metric is binary_accuracy which is just plain wrong when there is more than 2 labels.

What you have to do is to specify explicitly that the metric is categorical_accuracy like this: