Я использую предварительно обученную модель 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.
Любые комментарии и предложения высоко ценятся. Спасибо!
Я запустил ваш код, и он работает правильно. Поскольку у меня нет вашего изображения dog.jpg, я использовал цветное изображение афганской собаки в формате jpg, и сеть правильно идентифицировала его как афганскую борзую. Так что я подозреваю, что с вашим изображением что-то не так. Как и ожидалось, Yhat представляет собой массив 1 X 1000. Убедитесь, что ваше изображение является изображением RGB.
Я подозревал, что что-то не так при вводе изображения. Если удовлетворены, пожалуйста, примите ответ. Поляк тоже здесь!
Я понял, что происходит, как только прочитал ваш повтор. Спасибо Gerry P от польского народа.
спасибо за помощь. Я запускал это в Colab, и у меня был более ранний тестовый код, где в другой ячейке я импортировал:
from keras_vggface.vggface import VGGFace
from keras_vggface.utils import preprocess_input
from keras_vggface.utils import decode_predictions
Это и было причиной ошибки.... –
спасибо за помощь. Я запускал это в Colab, и у меня был более ранний тестовый код, где в другой ячейке я импортировал: from keras_vggface.vggface import VGGFace from keras_vggface.utils import preprocess_input from keras_vggface.utils import decode_predictions Это было причиной ошибки...