Я пытаюсь предсказать одно изображение. Но моя модель возвращает массив прогнозов с формой (1,1,1,2048), когда он должен быть (1,10). Есть идеи, что я делаю не так? Моя форма ввода x верна в (1, ...

1
mathlete 5 Апр 2021 в 23:44

3 ответа

Лучший ответ

Вы загружаете свою keras-модель с параметром

include_top=False

Которые разрезают полностью связанный слой проекции, который отвечает за проецирование выходных данных модели на ожидаемое количество классов. Измените параметр на True.

1
tnte 5 Апр 2021 в 20:47

Это потому, что вы отключаете верхнюю часть с помощью включения верхней части, которая удаляет последний слой классификации. Вам нужно либо добавить свой собственный слой с 10 классами, либо удалить параметр include top и переобучить сеть с желаемыми входами.

1
Niteya Shah 5 Апр 2021 в 20:48

Сеть классификации изображений обычно работает в пределах 2 этапов обработки. Первый - это извлечение признаков, мы называем это «базой», и оно состоит из набора слоев для поиска и закрепления шаблонов на изображении (2DConv, Relu и MaxPool). Второй - «голова», и он используется для классификации объектов, извлеченных из предыдущего шага. Ваш код получает необработанный вывод «базы», ​​без классификации, и, как заявили другие добрые люди, решением является добавление настраиваемой «головы» или изменение параметра include_top на True.

0
Chaos Misit 5 Апр 2021 в 22:19