Вы делаете какую-то ошибку, которая приводит к сбою вашей сети.
Сначала я предположу, что вы работаете с набором данных NMIST и пытаетесь классифицировать каждое изображение по классу.Ваша сеть выглядит следующим образом:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None, 28, 28, 128) 256
_________________________________________________________________
dense_2 (Dense) (None, 28, 28, 128) 16512
_________________________________________________________________
dense_3 (Dense) (None, 28, 28, 128) 16512
_________________________________________________________________
dense_4 (Dense) (None, 28, 28, 10) 1290
=================================================================
Total params: 34,570
Trainable params: 34,570
Non-trainable params: 0
_________________________________________________________________
Итак : у вас есть четыре измерения на выходе сети.И это не правильно для задачи классификации.Если вы добавите Flatten Layer непосредственно перед последним слоем:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_5 (Dense) (None, 28, 28, 128) 256
_________________________________________________________________
dense_6 (Dense) (None, 28, 28, 128) 16512
_________________________________________________________________
dense_7 (Dense) (None, 28, 28, 128) 16512
_________________________________________________________________
flatten_1 (Flatten) (None, 100352) 0
_________________________________________________________________
dense_8 (Dense) (None, 10) 1003530
=================================================================
Total params: 1,036,810
Trainable params: 1,036,810
Non-trainable params: 0
_________________________________________________________________
и здесь вы увидите, что у нас есть десять классов, которые вы хотели.И что у вас есть только два измерения: одно для размера партии (Нет), а другое для классов (10).Для одного образца это будет вектор вероятностей для каждого класса, который суммируется с одним из-за активации softmax (взаимоисключающие классы)
Не могли бы вы попробовать запустить тестирование, чтобы убедиться, что это ваша проблема.Тогда я настоятельно советую вам разобраться с изображениями в Керасе, потому что использование плотных слоев здесь (и только плотных) не оптимально (например, вы можете увидеть это Kaggle tuto )