Я хочу использовать модель MobileNet, предварительно обученную в ImageNet для извлечения функций. Я загружаю модель следующим образом:
from keras.applications.mobilenet import MobileNet
feature_model = MobileNet(include_top=False, weights='imagenet', input_shape=(200, 200, 3))
В руководстве Keras четко сказано , что эта форма ввода действительна:
input_shape: необязательный кортеж формы, указывается только в том случае, если include_top имеет значение False (в противном случае форма ввода должна быть (224, 224, 3) (с форматом данных channel_last)) или (3, 224, 224) (с формат данных channel_first). Он должен иметь ровно 3 входных канала, а ширина и высота должны быть не менее 32. Например, 200 (200, 3) будет одним допустимым значением.
Однако я получаю следующее сообщение об ошибке:
ValueError: Если загружаются изображения imagenet, входные данные должны иметь статическую квадратную форму (одну из (128, 128), (160, 160), (192, 192) или (224, 224)). Форма ввода при условии = (200, 200, 3)
Почему требуется, чтобы входная форма соответствовала той, на которой она обучалась, если я укажу include_top=False
?
Керас: 2.2.4, TensorFlow: 1.13.1
Обновление: как указывало @Soroush, это исключение было удалено недавно . Однако проблема не была полностью решена, как описано здесь .
Обновление 2: проблема была решена с помощью этих двух запросов на извлечение ( 1 , 2 ).