运行代码报错Sequential对象无predict_classes属性该如何解决?
报错产生原因
TensorFlow 2.x版本的内置tf.keras框架,以及Keras 2.3.0及以上的官方版本,已经正式移除了Sequential模型的predict_classes方法,该接口仅在老旧的TensorFlow 1.x和早期Keras版本中支持,所以调用时会触发属性不存在的报错。
修复方法
原predict_classes接口的本质是先预测样本对应各类别的概率,再取概率最高的类别作为输出结果,可按照你的业务场景选择对应代码替换报错行即可:
- 二分类场景:
# 替换原报错的第一行代码即可 predict_prob = model.predict(roi, 1, verbose=0)[0] result = str(1 if predict_prob > 0.5 else 0)
- 多分类场景:
import numpy as np # 替换原报错的第一行代码即可 predict_prob = model.predict(roi, 1, verbose=0)[0] result = str(np.argmax(predict_prob))
替换后后续的cv2.putText等业务代码无需调整,功能完全和原逻辑一致。
内容的提问来源于stack exchange,提问作者ace
相关产品推荐
相关产品推荐

