Вы можете проверить, если по умолчанию количество каналов указано в конце
from keras import backend as K
print(K.image_data_format()) # print current format
В моей системе это печатает "channel_last", что означает последний номер вашего input_shape
(28), - количество каналов, а 1 - количество строк.По этой же причине Keras выдает ошибку, поскольку вы не можете применить маску свертки 3 x 3 к изображению, содержащему только 1 строку (с заполнением по умолчанию, установленным на «valid»).
Скорее всего, вы хотите установить input_shape
равным (28, 28, 1)
.
Если вы хотите, чтобы ядро было ядром 3 x 3, то оно должно быть
model.add(Convolution2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)))
У вас есть сверточный слой с ядром размером 3 x 3 и шага 3.