pytorch分类模型绘制混淆矩阵及可视化的方法
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文小编为大家详细介绍"pytorch分类模型绘制混淆矩阵及可视化的方法",内容详细,步骤清晰,细节处理妥当,希望这篇"pytorch分类模型绘制混淆矩阵及可视化的方法"文章能帮助大家解决疑惑,下面跟
千家信息网最后更新 2026年11月03日pytorch分类模型绘制混淆矩阵及可视化的方法
本文小编为大家详细介绍"pytorch分类模型绘制混淆矩阵及可视化的方法",内容详细,步骤清晰,细节处理妥当,希望这篇"pytorch分类模型绘制混淆矩阵及可视化的方法"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
Step 1. 获取混淆矩阵
#首先定义一个 分类数*分类数 的空混淆矩阵 conf_matrix = torch.zeros(Emotion_kinds, Emotion_kinds) # 使用torch.no_grad()可以显著降低测试用例的GPU占用 with torch.no_grad(): for step, (imgs, targets) in enumerate(test_loader): # imgs: torch.Size([50, 3, 200, 200]) torch.FloatTensor # 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 = model(imgs) #记录混淆矩阵参数 conf_matrix = confusion_matrix(out, targets, conf_matrix) conf_matrix=conf_matrix.cpu()
混淆矩阵的求取用到了confusion_matrix函数,其定义如下:
def confusion_matrix(preds, labels, conf_matrix): preds = torch.argmax(preds, 1) for p, t in zip(preds, labels): conf_matrix[p, t] += 1 return conf_matrix
在当我们的程序执行结束 test_loader 后,我们可以得到本次数据的 混淆矩阵,接下来就要计算其 识别正确的个数以及混淆矩阵可视化:
conf_matrix=np.array(conf_matrix.cpu())# 将混淆矩阵从gpu转到cpu再转到npcorrects=conf_matrix.diagonal(offset=0)#抽取对角线的每种分类的识别正确个数per_kinds=conf_matrix.sum(axis=1)#抽取每个分类数据总的测试条数 print("混淆矩阵总元素个数:{0},测试集总个数:{1}".format(int(np.sum(conf_matrix)),test_num)) print(conf_matrix) # 获取每种Emotion的识别准确率 print("每种情感总个数:",per_kinds) print("每种情感预测正确的个数:",corrects) print("每种情感的识别准确率为:{0}".format([rate*100 for rate in corrects/per_kinds]))执行此步的输出结果如下所示:

Step 2. 混淆矩阵可视化
对上边求得的混淆矩阵可视化
# 绘制混淆矩阵Emotion=8#这个数值是具体的分类数,大家可以自行修改labels = ['neutral', 'calm', 'happy', 'sad', 'angry', 'fearful', 'disgust', 'surprised']#每种类别的标签# 显示数据plt.imshow(conf_matrix, cmap=plt.cm.Blues)# 在图中标注数量/概率信息thresh = conf_matrix.max() / 2 #数值颜色阈值,如果数值超过这个,就颜色加深。for x in range(Emotion_kinds): for y in range(Emotion_kinds): # 注意这里的matrix[y, x]不是matrix[x, y] info = int(conf_matrix[y, x]) plt.text(x, y, info, verticalalignment='center', horizontalalignment='center', color="white" if info > thresh else "black") plt.tight_layout()#保证图不重叠plt.yticks(range(Emotion_kinds), labels)plt.xticks(range(Emotion_kinds), labels,rotation=45)#X轴字体倾斜45°plt.show()plt.close()
好了,以下就是最终的可视化的混淆矩阵啦:

其它分类指标的获取
例如 F1分数、TP、TN、FP、FN、精确率、召回率 等指标, 待补充哈(因为暂时还没用到)~
读到这里,这篇"pytorch分类模型绘制混淆矩阵及可视化的方法"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
矩阵
分类
可视化
个数
方法
模型
情感
数值
数据
文章
测试
内容
准确率
指标
颜色
抽取
妥当
显著
精确
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
广州淘业互联网络科技
互联网核心科技是什么
天津摩尔互联网科技
沃里互联网科技
深圳卡尔迅互联网科技有限公司怎么样
成都铂石互联网科技做什么的
武汉健翔互联网络科技有限公司
昭通互联网科技选哪家
荆州市昕露互联网络科技有限公司
浙南科技城互联网大厦建设工程
互联网在线教育科技创业
恒生互联网科技业指数调整周期
山东星卡互联网科技有限公司官网
中天科技中国工业互联网
互联网相关科技技术
互联网科技融合创新
北京瑞云互联网科技有限公司
六子台科技互联网展会
小牛互联网科技有限公司地址
互联网科技作文
宜安科技 互联网金融
华中科技大学互联网
撒么互联网科技公司
互联网养老 桔豆科技
互联网还是高科技吗
互联网时代的科技公司
上海创道互联网络科技有限公司
科技和互联网行业的特点
小牛互联网科技有限公司地址