Keras: ValueError: decode_predictions ожидает пакет прогнозов, NEW

Я использую предварительно обученную модель keras VGG16 по этой ссылке: Передача обучения Я пытаюсь предсказать содержимое изображения:

# example of using a pre-trained model as a classifier
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
from keras.applications.vgg16 import preprocess_input
from keras.applications.vgg16 import decode_predictions
from keras.applications.vgg16 import VGG16
# load an image from file
image = load_img('dog.jpg', target_size=(224, 224))
# convert the image pixels to a numpy array
image = img_to_array(image)
# reshape data for the model
image = image.reshape((1, image.shape[0], image.shape[1], image.shape[2]))
# prepare the image for the VGG model
image = preprocess_input(image)
# load the model
model = VGG16()
# predict the probability across all output classes
yhat = model.predict(image)
# convert the probabilities to class labels
label = decode_predictions(yhat)
# retrieve the most likely result, e.g. highest probability
label = label[0][0]
# print the classification
print('%s (%.2f%%)' % (label[1], label[2]*100))

Полный вывод ошибок:

ValueError: decode_predictions ожидает пакет прогнозов (т.е. двумерный массив формы (выборки, 2622)) для V1 или (выборки, 8631) для V2.Найден массив с формой: (1, 1000)

Это ссылка на, казалось бы, похожий вопрос на SO.

Любые комментарии и предложения высоко ценятся. Спасибо!

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
549
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Я запустил ваш код, и он работает правильно. Поскольку у меня нет вашего изображения dog.jpg, я использовал цветное изображение афганской собаки в формате jpg, и сеть правильно идентифицировала его как афганскую борзую. Так что я подозреваю, что с вашим изображением что-то не так. Как и ожидалось, Yhat представляет собой массив 1 X 1000. Убедитесь, что ваше изображение является изображением RGB.

спасибо за помощь. Я запускал это в Colab, и у меня был более ранний тестовый код, где в другой ячейке я импортировал: from keras_vggface.vggface import VGGFace from keras_vggface.utils import preprocess_input from keras_vggface.utils import decode_predictions Это было причиной ошибки...

Mariusz Lewandowski 16.12.2020 01:17

Я подозревал, что что-то не так при вводе изображения. Если удовлетворены, пожалуйста, примите ответ. Поляк тоже здесь!

Gerry P 16.12.2020 02:09

Я понял, что происходит, как только прочитал ваш повтор. Спасибо Gerry P от польского народа.

Mariusz Lewandowski 20.12.2020 23:29

спасибо за помощь. Я запускал это в Colab, и у меня был более ранний тестовый код, где в другой ячейке я импортировал:

from keras_vggface.vggface import VGGFace 
from keras_vggface.utils import preprocess_input 
from keras_vggface.utils import decode_predictions

Это и было причиной ошибки.... –

Другие вопросы по теме