Но проблема в том, что размер входного изображения предварительно подготовленной модели составляет 224X224.
Я предполагаю, что вы работаете с Keras
/ Tensorflow
(то же самое для других платформ DL). Согласно документам в приложении Keras :
input_shape : необязательный кортеж формы, указывается только в случае include_top
Неверно (иначе входная форма должна быть (224, 224, 3) (с
формат данных channel_last) или (3, 224, 224) (с помощью channel_first)
формат данных). Он должен иметь ровно 3 входных канала, а ширина и
высота должна быть не менее 48. Например, (200, 200, 3) будет один
Итак, есть два варианта решения вашей проблемы:
1) Измените размер входного изображения до 244*244
с помощью существующей библиотеки и используйте VGG классификатор [include=true
].
2) Тренируйте свой собственный классификатор поверх моделей VGG. Как упомянуто в вышеупомянутой документации в Keras
, если ваше изображение отличается от 244 * 244, вы должны обучить свой собственный классификатор [include=false]
. Вы можете легко делать такие вещи с помощью:
inp = keras.layers.Input(shape=(64, 64, 3), name='image_input')
vgg_model = VGG19(weights='imagenet', include_top=False)
vgg_model.trainable = False
x = keras.layers.Flatten(name='flatten')(vgg_model)
x = keras.layers.Dense(512, activation='relu', name='fc1')(x)
x = keras.layers.Dense(512, activation='relu', name='fc2')(x)
x = keras.layers.Dense(10, activation='softmax', name='predictions')(x)
new_model = keras.models.Model(inputs=inp, outputs=x)
new_model.compile(optimizer='adam', loss='categorical_crossentropy',
metrics=['accuracy'])
Если я использую трансферное обучение, то, как правило, мне нужно
заморозка от предварительно обученной модели
Это действительно зависит от того, какое у вас новое задание, сколько у вас тренировочных примеров, какая у вас модель с подготовкой и многое другое. Если бы я был тобой, я бы сначала выбросил предварительно обученный модельный классификатор. Затем, если это не помогло, удалите другой слой Convolution и делайте это шаг за шагом, пока я не получу хорошую производительность.