Если вы хотите настроить модель классификации обычно, вы удалите несколько верхних слоев, которые действуют как классификатор, и добавите свои собственные слои. То же самое можно сказать и о тонкой настройке модели Inception_V3: вы можете удалить верхние слои и добавить свой собственный классификатор с нужным количеством единиц (то есть количеством классов в вашем наборе данных). Например:
from keras.applications.inception_v3 import InceptionV3
# let's say our images are of size (1000, 1000, 3)
inc_v3 = InceptionV3(include_top=False, input_shape=(1000, 1000, 3), pooling)
# add your desired layers to the top
# we only add one layer just for illustration
# but you can add as many layers as you want
out = Dense(num_classes, activation='softmax')(inc_v3.output)
# construct the new model
model = Model(inc_v3.input, out)
Однако учтите, что для тонкой настройки вам необходимо сначала заморозить все базовые слои (то есть слои модели Inception_V3). Кроме того, вместо добавления слоя пула вверху (т. Е. pooling='avg'
), вы также можете использовать другие альтернативы, такие как использование слоя Flatten
.
Далее, я рекомендую вам прочитать соответствующий официальный учебник Keras: Создание мощных моделей классификации изображений с использованием очень небольшого количества данных (второй и третий разделы в основном относятся к этому).