Я пытаюсь предсказать одно изображение. Но моя модель возвращает массив прогнозов с формой (1,1,1,2048), когда он должен быть (1,10). Есть идеи, что я делаю не так? Моя форма ввода x верна в (1, ...
3 ответа
Вы загружаете свою keras-модель с параметром
include_top=False
Которые разрезают полностью связанный слой проекции, который отвечает за проецирование выходных данных модели на ожидаемое количество классов. Измените параметр на True.
Это потому, что вы отключаете верхнюю часть с помощью включения верхней части, которая удаляет последний слой классификации. Вам нужно либо добавить свой собственный слой с 10 классами, либо удалить параметр include top и переобучить сеть с желаемыми входами.
Сеть классификации изображений обычно работает в пределах 2 этапов обработки. Первый - это извлечение признаков, мы называем это «базой», и оно состоит из набора слоев для поиска и закрепления шаблонов на изображении (2DConv, Relu и MaxPool). Второй - «голова», и он используется для классификации объектов, извлеченных из предыдущего шага. Ваш код получает необработанный вывод «базы», без классификации, и, как заявили другие добрые люди, решением является добавление настраиваемой «головы» или изменение параметра include_top на True.
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.