TensorFlow2.6中Sequential调用predict_proba报AttributeError如何解决
报错原因
predict_proba是Keras 1.x版本提供的API,TensorFlow 2.0及后续版本整合的Keras框架已经完全移除了该方法,你参考的1.0版本官方文档不适用于TensorFlow 2.6版本,因此调用时会触发属性不存在的报错。
解决方案
你的二分类模型输出层使用了sigmoid激活函数,直接调用predict方法即可得到样本属于正类的概率,再做一次简单的格式转换就能匹配scikit-plot接口要求的输入格式:
import numpy as np # 替换原有predict_proba调用 pos_proba = model_cEXT.predict(X_test) # 构造[n_samples, 2]格式的概率矩阵,第一列为负类概率,第二列为正类概率 y_prob = np.hstack([1 - pos_proba, pos_proba])
效果验证
生成的y_prob完全符合sklearn格式要求,直接代入你现有的可视化代码即可正常绘制精确率-召回率曲线:
skplt.metrics.plot_precision_recall_curve(y_test['cEXT'].values, y_prob) plt.title('Precision-Recall Curve - cEXT') plt.show()
内容的提问来源于stack exchange,提问作者Juned Ansari
相关产品推荐
相关产品推荐

