Ваша модель, как она есть , не изучает вообще.
Вы используете VGG16
предварительно обученную модель, меняющую верхние слои новыми слоями, чтобы ваша модель выучила новые классы, но позже вы делаете все слои непригодными для обучения.Таким образом, ваши новые плотные слои всегда будут содержать случайные веса, как их инициализация, и ваша модель никогда не будет учиться.
Если вы хотите, чтобы ваши веса VGG16
были заблокированы, и для точной настройки вашей модели, вам следует переместить код весов ваших стоп-слоев до , добавив новые слои, например:
#Moved here
for layer in model.layers:
layer.trainable = False
# add flatten and two dense layers that don't appear when specifying an input_shape
model.add(Flatten())
model.add(Dense(4096))
model.add(Dropout(.5))
model.add(Dense(4096))
model.add(Dropout(.5))
...
Имейте в виду, что ваша модель может иметь лучшие результаты, не замораживая слои.Для этого просто оставьте все свои слои обучаемыми.