model = VGG16()
from tensorflow.python.keras.preprocessing.image import load_img
img_dog = load_img('C:\Users\n\Desktop\smy.jpg' ,target_size=(224,224))
from tensorflow.python.keras.preprocessing.image import img_to_array
arr_dog = img_to_array(img_dog)
from tensorflow.python.keras.applications.vgg16 import preprocess_input
arr_input=preprocess_input(arr_dog)
probs = model.predict(arr_input)
probs
后续增加numpy解决
在你最初报错的代码predict(arr_input)前加上对arr_input的shape打印,然后整体运行。看报错是否还是说shape是32x224x3
你的图片预处理没有处理好。模型要求你图片的长宽为224x224,但是你的长宽为32x224,你需要考虑下不够224的怎么填充完整。另外模型的输入按照你的格式是【bs,H,W,C】,其中bs为batch size。如果你是单张图片,bs应该设置为1,也就是需要对图片进行升维度,最简单的是
img=img[None]这样将图片变成[1,H,W,C]的格式,然后转成tensor。
如果已经是tensor,使用tf.expand_dims(X, 0)对其进行升维