VGG16
модель сама по себе представляет собой набор весов фиксированной последовательности слоев и фиксированных размеров ядер свертки и т. Д. Это не означает, что эти ядра свертки нельзя применять к изображениям других размеров.
Например, в вашем случае:
from keras.models import Model
from keras.layers import Dense,Flatten
from keras.applications import vgg16
from keras import backend as K
model = vgg16.VGG16(weights='imagenet', include_top=False, input_shape=(160,320,3))
model.summary(line_length=150)
flatten = Flatten()
new_layer2 = Dense(10, activation='softmax', name='my_dense_2')
inp2 = model.input
out2 = new_layer2(flatten(model.output))
model2 = Model(inp2, out2)
model2.summary(line_length=150)
Согласно here минимальный размер изображения может быть 48x48x3
все, что выше, чем это хорошо.
Теперь его истинные оригинальные веса были изучены на изображениях 224,224,3
, но весы фильтров являются очень хорошей отправной точкой для новых задач с новым набором изображений. Вам нужно перестроить сеть, но сеть будет сходиться очень быстро. Это основа передачи обучения.