最近在做猫狗二分类实验的时候,在网上找到了教程,然后跟着教程打代码发现最后出现了ValueError: Input 0 of layer sequential is incompatible with the layer: : expected min_ndim=4, found
错误,然后我就查找相关的问题解答,终于找到了答案。
教程上的get_predict的代码是这样的
#预测图片的种类
def get_predict(pil_im,model):
# 对图片进行缩放
pil_im = pil_im.resize((200, 200))
#将格式转化为numpy array格式
array_im=np.asarray(pil_im)
#对图片进行预测
result=model.predict([[array_im]])
if result[0][0]>0.5:
print(“预测结果是:狗”)
else:
print(“预测结果是:猫”)
改正后的代码是
#首先要导入相关库文件
from keras.preprocessing import image
def get_predict(pil_im,model):
#对图片进行缩放
pil_im=pil_im.resize((200,200))
#将格式转为numpy array 格式
#array_im=np.asarray(pil_im)
#对图片进行预测
pil_im = image.img_to_array(pil_im)
pil_im = np.expand_dims(pil_im, axis=0)
result=model.predict(pil_im)
if result[0][0]>0.5:
print("预测结果为:狗")
else:
print("预测结果为:猫")
最终大功告成了!!!