资讯详情

pytorch神经网络多分类任务计算准确率和Macro-

class_num=5  # 分类数  confusion_matrix = torchnet.meter.ConfusionMeter(class_num)  # 使用torchnet创建5分类混淆矩阵  # 每次完成一次batch 迭代混淆矩阵 for ii, (val_input, label) in enumerate(dataloader):     val_input = val_input.to(opt.device)     score = model(val_input)     confusion_matrix.add(score.detach().squeeze(), label.type(torch.LongTensor))  cm_value = confusion_matrix.value() # 5x5 numpy数组   TP, FN, FP, TN = [[], [], [], []] for i in range(class_num):     tp = cm_value[i][i]     fn = cm_value[:, i].sum() - cm_value[i][i]     fp = cm_value[i, :].sum() - cm_value[i][i]     tn = cm_value.sum() - tp - fn - fp     TP.append(tp)     FN.append(fn)     FP.append(fp)     TN.append(tn)  计算准确率和Macro-F1''' accuracy = 100. * (sum(TP)) / (cm_value.sum())  # 准确率 Macro_F1s = [] for i in range(class_num):     P_i = 0.0 if math.isnan(TP[i] / (TP[i]   FP[i])) else 100.*TP[i] / (TP[i]   FP[i])       # i类别的准确性     R_i = 0.0 if math.isnan(TP[i] / (TP[i]   FN[i])) else 100.*TP[i] / (TP[i]   FN[i])       # i类别召回率      F1_i = 0.0 if math.isnan(2 * P_i * R_i / P_i   R_i) else 2 * P_i * R_i / P_i   R_i         Macro_F1s.append(F1_i) Macro_F1s = np.array(Macro_F1s) Macro_F1 = Macro_F1s.mean() 

示例代码,不能操作,

标签: 300kg传感器accu

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台