Ваша модель CNN ведет себя как случайная модель.
Я знаю это, потому что, поскольку существует 200 классов, вероятность получения правильного класса случайным образом составляет 1/200 = 0,0050, что является вашей точностью.
Это происходит, когда вы используете tenorflow / keras API вместо последовательного ()
Поскольку вы используете VGG19, если вы пытаетесь использовать переносное обучение, возможно, вы заморозил не тот слой .
Если вы используете API, вам нужно сделать
model = Model(inputs = input_layer, outputs = output_layer) #which is not required in sequential()
print(model.layers) # if you are using API or sequential() this is used to check your layers
Затем вам нужно заморозить необходимый слой как
model.layers[index_of_freeze_layer].trainable = False
Если вы не замораживаете слои модели , попробуйте использовать более низкую скорость обучения, поскольку VGG19 очень чувствителен к скорости обучения. (0,00001 или меньше зависит)