问题描述
运行以下代码的时候报错:Error calculating metrics: unknown is not supported
try:
# 计算精度、召回和 F1 分数
precision = precision_score(label_batch_np, preds_np)
recall = recall_score(label_batch_np, preds_np)
f1 = f1_score(label_batch_np, preds_np)
except ValueError as e:
print("Error calculating metrics:", e)
continue
原因分析
查官方文档(precision_score — scikit-learn 1.5.1 documentation)
主要确认:
- label、preds是2分类的(都包含0和1)
- 一维数组
- int类型
修改后:
try:
label_batch_np = label_batch.cpu().numpy().astype(int)
preds_np = preds.cpu().numpy().astype(int)
# 降成一维数组
label_batch_np = label_batch_np.flatten()
preds_np = preds_np.flatten()
# 计算精度、召回和 F1 分数
precision = precision_score(label_batch_np, preds_np)
recall = recall_score(label_batch_np, preds_np)
f1 = f1_score(label_batch_np, preds_np)
except ValueError as e:
print("Error calculating metrics:", e)
continue