import warnings warnings.filterwarnings('ignore') from ultralytics import YOLO # 假设类别名称 class_names = ['Center', 'Donut', 'Edge-Loc', 'Edge-Ring', 'Loc', 'Near-full', 'Random', 'Scratch'] if __name__ == '__main__': # 加载自定义模型 model = YOLO('runs/classify/train21/weights/best.pt') # 在数据集上验证模型 results = model.val(data='E:\\wafer_data\\wafer_27') # 打印总体 top1 和 top5 准确率 print(f"Top-1 准确率: {results.top1:.2f}") print(f"Top-5 准确率: {results.top5:.2f}") # 尝试从 confusion_matrix 中提取每个类别的准确率 if hasattr(results, 'confusion_matrix'): cm = results.confusion_matrix.matrix # 获取混淆矩阵数据 class_accuracies = cm.diagonal() / cm.sum(axis=1) for i, acc in enumerate(class_accuracies): print(f"类别 {class_names[i]} 的准确率: {acc:.2f}") else: print("Confusion matrix 不可用") # # 打印 curves 和 curves_results # print("Curves:") # print(results.curves) # # print("Curves Results:") # print(results.curves_results)
yolov8分类网络输出每个类别的准确率
最新推荐文章于 2025-02-17 17:12:50 发布