之前代码是有效的,在更换训练模型后出现提示错误:
AttributeError: ‘Model’ object has no attribute ‘predict_classes’
因为两次训练时,网络结构不同
第一次用的网络是在model=Sequential()下添加模块的的方法,也就是所谓的顺序模型。Sequential class可以使用model.predict_classes()的方法来实现预测;第二次用的方法,是编写好网络结构后使用model=Model()综合起来的方法,也就是Model class,无法使model.predict_classes(),但是可以使用组合形式预测。
将
predict = model.predict_classes(img)
改为
predict = model.predict(img)
predict=np.argmax(predict,axis=1)
- model.predict_classes(test)预测的是类别,打印出来的值就是类别号同时只能用于序列模型来预测,不能用于函数式模型
- model.predict(test)预测的是数值,而且输出的还是5个编码值,不过是实数,预测后要经过argmax(predict_test,axis=1)