pytorch 矩阵分解,pytorch混淆矩阵画图

  pytorch 矩阵分解,pytorch混淆矩阵画图

  混淆矩阵是绘制ROC曲线的基础,也是衡量分类模型准确性的最基本、最直观、最简单的方法。以下文章主要介绍pytorch分类模型绘制混淆矩阵及可视化的相关信息,有需要的可以参考。

  

目录
步骤1。获得混淆矩阵步骤2。可视化混淆矩阵,得到其他分类指标的汇总。

  

Step 1. 获取混淆矩阵

  #首先定义一个空的分类号*分类号的混淆矩阵。

  conf _ matrix=torch . zeros(Emotion_kinds,Emotion _ kinds)

  #使用torch.no_grad()可以显著降低测试用例的GPU占用。

  用torch.no_grad():

  对于enumerate(test_loader):中的步骤(img,targets)

  # imgs:火炬。尺寸([50,3,200,200])手电筒。漂浮者

  # Targets: torch.size ([50,1]),torch.longtensor多了一个维度,我们要去掉。

  targets=targets.squeeze() # [50,1] - [50]

  #将变量转化为GPU

  targets=targets.cuda()

  imgs=imgs.cuda()

  # print(step,imgs.shape,imgs.type(),targets.shape,targets.type())

  out=模型(imgs)

  #记录混淆矩阵参数

  conf_matrix=confusion _ matrix(out,targets,conf _ matrix)

  conf_matrix=conf_matrix.cpu()

  混淆矩阵函数用于求解混淆矩阵,其定义如下:

  def混淆矩阵(预编码,标签,配置矩阵):

  preds=torch.argmax(preds,1)

  对于邮政编码为:的邮政编码(预编码、标签)

  conf_matrix[p,t]=1

  返回配置矩阵

  在我们的程序执行完test_loader之后,我们可以得到这个数据的混淆矩阵。接下来,我们必须计算正确的识别数并可视化混淆矩阵:

  conf _ matrix=np . array(conf _ matrix . cpu())#将混淆矩阵从gpu转移到CPU,再转移到NP

  corrections=conf _ matrix . diagonal(offset=0)#用于提取对角线的每个分类的正确识别数

  per _ kinds=conf _ matrix . sum(axis=1)#提取每个分类数据的试纸条总数

  Print(混淆矩阵的元素总数:{0},测试集总数: {1} 。format (int (np.sum (conf _ matrix)),test _ num))

  打印(会议矩阵)

  #获得每种情绪的识别准确率

  打印(每种情绪的总数:,per_kinds)

  打印(每种情绪的正确预测数:,修正数)

  打印(每种情绪的识别准确率为:{0} 。格式([rate * 100表示修正率/每种类型])

  这一步的输出如下:

  

Step 2. 混淆矩阵可视化

  将上面获得的混淆矩阵可视化。

  #绘制混淆矩阵

  Emotion=8#这个值是具体的分类号,可以自己修改。

  标签=[中性,冷静,快乐,悲伤,焦虑,恐惧,尴尬,惊讶] #每个类别标签

  #显示数据

  plt.imshow(conf_matrix,cmap=plt.cm.Blues)

  #在图中标出数量/概率信息。

  Thresh=conf_matrix.max()/2#数字颜色阈值。如果数值超过这个,颜色会加深。

  对于范围内的x(Emotion _ kinds):

  对于范围(Emotion_kinds):中的y

  #注意这里的matrix[y,x]不是matrix[x,y]

  info=int(conf_matrix[y,x])

  plt.text(x,y,info,

  垂直对齐=居中,

  horizontalalignment=居中,

  color= white if info thresh else black )

  Plt.tight_layout()#确保图形不重叠。

  plt.yticks(范围(情感_种类),标签)

  Plt。x票(range (emotion _ kinds),labels,rotation=45) # x轴字体倾斜45。

  plt.show()

  plt.close()

  好了,这是最终的视觉混乱矩阵:

  

其它分类指标的获取

  比如F1评分,TP,TN,FP,FN,精准率,召回率等指标都需要加上(因为还没用过)~

  

总结

  关于pytorch分类模型绘制混淆矩阵及可视化的这篇文章到此为止。有关pytorch绘制混淆矩阵的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: