运行二分类CNN预测时提示Sequential对象无predict_classes属性如何解决
报错AttributeError: 'Sequential' object has no attribute 'predict_classes' 解决方法
报错原因
该报错触发的核心原因是TensorFlow 2.6及以上版本中,官方正式移除了
Sequential和Functional模型类的predict_classes方法,原有调用逻辑不再兼容。
解决方案
你当前是二分类场景,输出层采用sigmoid激活函数,直接用如下代码替换原有报错行即可,效果和原有predict_classes完全一致:
# 原有报错代码 # classes = model.predict_classes(images, batch_size=10) # 替换为如下代码 pred_probs = model.predict(images, batch_size=10) classes = (pred_probs > 0.5).astype("int32")
如果是多分类(输出层采用softmax激活)的场景,使用如下代码替换:
pred_probs = model.predict(images, batch_size=10) classes = np.argmax(pred_probs, axis=1)
可选降级方案(不推荐)
如果要完全兼容旧版本代码逻辑,可以将TensorFlow/Keras版本降级到2.5及以下版本,执行命令:pip install tensorflow==2.5
内容的提问来源于stack exchange,提问作者Yash Sharma
相关产品推荐
相关产品推荐

