Я немного запутался ... Сначала я начал с:
model = Sequential() # (32, 32, 3)
model.add(Conv2D(4, (3, 3), activation='relu', input_shape=input_shape))
model.add(Conv2D(8, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(16, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
и еще двух моделей с одним дополнительным блоком Conv2D, Conv2D, MaxPool, Dropout
с 16 и 32 фильтрами конв в модели2 и двумя дополнительными блоками с16, 32, 64, 128, конв фильтры в модели3.Я получил максимальную точность около 75%, 78%, 82% соответственно ...
, затем я изменил количество фильтров в Conv2D в первой модели на 16 и 32, а также количество узлов в плоском слоедо 300, и получил точность 97%.Тем не менее, изменение моделей 2 и 3, которые по существу совпадают с моделью 1, но с большим количеством слоев, не улучшило точность и фактически ухудшило ее ... Я пробовал различное количество фильтров в дополнительных слоях Conv и другое количествоузлы в плоском слое, от 300 до 1500, но, похоже, ничего не меняет дело.Несмотря ни на что, первая модель с наименьшим количеством слоев, кажется, работает лучше всего.
Почему это так?