图像分类任务中如何统计Keras二分类模型的正确标签数量?
实现步骤
- 先获取模型对数据集的预测结果,由于输出层用的是sigmoid激活,以0.5为阈值将预测概率转为0/1标签
- 利用布尔数组求和直接统计所需数值
完整代码示例
import numpy as np # 1. 获取测试集预测结果 y_pred_proba = model.predict(test_ds) # 概率转0/1标签,同时拍平维度避免和真实标签维度不匹配 y_pred = (y_pred_proba > 0.5).astype(int).flatten() # 真实标签也统一拍平 y_true = test_lb.flatten() # 2. 统计所需数值 # 验证集标签为0的总样本数(即总猫的数量) total_cat_count = (y_true == 0).sum() # 验证集被正确预测为猫的样本数 correct_cat_count = ((y_true == 0) & (y_pred == 0)).sum() # 验证集总正确预测样本数 total_correct_count = (y_true == y_pred).sum() # 打印结果 print(f"验证集标签为0的总样本数:{total_cat_count}") print(f"验证集正确预测为猫的样本数:{correct_cat_count}") print(f"验证集总正确预测数:{total_correct_count}") # 如果需要统计训练集的对应数值,替换test_ds、test_lb为train_ds、train_lb即可
补充说明
如果需要同时统计类别1的相关数据,只需把判断条件里的==0改成==1即可,布尔数组在求和时会自动把True视为1、False视为0,直接就能得到符合条件的样本总数。
内容的提问来源于stack exchange,提问作者FNM
相关产品推荐
相关产品推荐

