ResNet50 керас дает неправильный вывод, когда top = False - PullRequest
0 голосов
/ 04 мая 2020

Для обучения передаче я использую ResNet50 в качестве экстрактора функций. Делая top = False, я беру вывод из слоя, который находится непосредственно перед последним слоем. Выходные данные должны иметь размер (#examples, 7, 7, 2048) как документация ResNet50. Но я столкнулся со странной проблемой. Я получаю форму вывода (#examples, 8, 8, 2048). Ниже приведен код:

model = ResNet50(weights="imagenet", include_top=False)
# batchImages is a list containing images in that batch
# bs is the batch size
features = model.predict(batchImages, batch_size = bs) 

Здесь форма объекта должна быть (#examples, 7, 7, 2048), но она дает (#examples, 8, 8, 2048). Почему это происходит?

1 Ответ

0 голосов
/ 04 мая 2020

Как я обнаружил, размер выходного объекта в ResNet50 (с top = False) зависит от формы ввода изображений. Хотя в документации я обнаружил, что форма выходного объекта в этом случае будет (#examples, 7, 7, 2048), но она меняется, когда я меняю форму входного изображения. Хотя я нигде не нашел разъяснений по этому поводу. Но, как я видел, когда я использую изображения размером (224 x 224), все работает нормально. Но когда я увеличиваю размер входного изображения до (255 x 255), размер вектора выходного объекта меняется на (#examples, 8, 8, 2048). Это выглядит странно, но на самом деле это происходит.

...