利用混淆矩阵查看每一类预测结果+miou计算

混淆矩阵的示意图如下:

import numpy as np
cm=np.array([[4,0,0,0],[0,1,0,0],[0, 0, 2, 0],[0, 1, 3, 0]])
plt.figure()
plt.grid(False)
plt.imshow(cm, cmap='jet')
plt.colorbar()
plt.show()

import matplotlib.pyplot as plt
import seaborn as sn
import numpy as np
from sklearn.metrics import confusion_matrix_pred = np.array([[0, 1, 2],[1, 2, 3],[1, 1, 2]])
_gt = np.array([[0, 1, 1],[2, 2, 3],[1, 3, 2]])
flat_pred = _pred.flatten().astype('uint8')
print('flat_pred=', flat_pred)
flat_true = _gt.flatten().astype('uint8')
print('flat_true=', flat_true)
label_class = [x for x in range(4)]
# print(label_class)
confusion = confusion_matrix(flat_true, flat_pred, label_class)
print('confusion=', confusion)
list_diag = np.diag(confusion)
print('list_diag=', list_diag)
list_raw_sum = np.sum(confusion, axis=1)
print('list_raw_sum=',list_raw_sum)
each_acc = np.nan_to_num(list_diag.astype('Float32') / list_raw_sum.astype('Float32'))
print('each_acc=', each_acc)
ave_acc=np.mean(each_acc)
print('ave_acc=',ave_acc)ax = plt.axes()
class_names = ['mountain', 'street', 'glacier', 'person']
sn.heatmap(confusion, annot=True,annot_kws={"size": 10},xticklabels=class_names,yticklabels=class_names, ax=ax)
ax.set_title('Confusion matrix')
plt.savefig('./confusion.jpg')
plt.show()

miou计算:

def gen_matrix(gt_mask, pred_mask, class_num):"""gt_mask(ndarray): shape -> (height, width), 真实的分割图pred_mask(ndarray):shape -> (height, width), 预测的分割结果class_num: 类别数目,不包含背景"""mask = (gt_mask >= 0) & (gt_mask < class_num)print('===mask:', mask)print('===pred_mask[mask]:', pred_mask[mask])print('==class_num * gt_mask[mask].astype(int):', class_num * gt_mask[mask].astype(int))print(class_num * gt_mask[mask].astype(int) + pred_mask[mask])# bincount为计数函数,将数组从小到大排序后计数,默认从0到数组最大值计数。count = np.bincount(class_num * gt_mask[mask].astype(int) + pred_mask[mask], minlength=class_num ** 2)print('==count:', count)# 混淆矩阵cf_mtx = count.reshape(class_num, class_num)print('==cf_mtx:', cf_mtx)return cf_mtxdef mean_iou(cf_mtx):"""cf_mtx(ndarray): shape -> (class_num, class_num), 混淆矩阵"""#mIou = np.diag(cf_mtx) / (np.sum(cf_mtx, axis=1) + \np.sum(cf_mtx, axis=0) - np.diag(cf_mtx))print('===mIou:', mIou)# 所有类别iou取平均mIou = np.nanmean(mIou)return mIougt_mask = np.array([[0, 1, 1],[1, 1, 0],[1, 1, 0]])
pred_mask = np.array([[0, 1, 1],[1, 0, 0],[1, 0, 1]])
class_num = 2
cx_matrix = gen_matrix(gt_mask, pred_mask, class_num)
miou = mean_iou(cx_matrix)
print('==miou:', miou)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493405.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubantu系统配置固定IP地址和Pycharm连接远程服务器

当需要远程办公时&#xff0c;使用pycharm远程连接服务器是必要的。 PyCharm提供两种远程调试(Remote Debugging)的方式&#xff1a; 配置远程的解释器&#xff08;remote interpreter&#xff09;配置Python调试服务器&#xff08;Python Debug Server&#xff09; 本篇文章主…

人工智能正在如何改变世界:BBC 总结 AI 的 A 到 Z

来源&#xff1a;AI 科技评论摘要&#xff1a;如今&#xff0c;人工智能已经不是一项虚无缥缈的实验室科技&#xff0c;它已经融入我们生活的方方面面。BBC Future 栏目撰写了一篇轻松愉快的文章&#xff0c;选出了首字母 A 到 Z 的 26 个单词&#xff0c;借助它们介绍机器的思…

灵活运用 SQL SERVER FOR XML PATH

FOR XML PATH 有的人可能知道有的人可能不知道&#xff0c;其实它就是将查询结果集以XML形式展现&#xff0c;有了它我们可以简化我们的查询语句实现一些以前可能需要借助函数活存储过程来完成的工作。那么以一个实例为主. 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR…

近代数字信号处理实验-DFT分析信号的频谱

一、实验目的 &#xff08;1&#xff09;掌握利用DFT近似计算不同类型信号频谱的原理和方法。 &#xff08;2&#xff09;理解误差产生的原因及减小误差的方法。 &#xff08;3&#xff09;培养学生自主学习能力&#xff0c;以及发现问题、分析问题和解决问题的能力。 二、…

人工智能+能源:能源行业变革新趋势

来源&#xff1a;资本实验室随着环保压力的不断加大&#xff0c;以及可再生能源成本持续降低等因素&#xff0c;越来越多的国家都开始大力推动从传统化石能源转向可再生能源&#xff0c;全球很多大型企业也纷纷加入了全球可再生能源计划RE100&#xff0c;以实现可再生能源100%的…

利用numpy生成各种波

一&#xff0c;生成矩形波 矩形波的傅里叶级数 xnp.linspace(-np.pi,np.pi,201) knp.arange(1,99) k2*k-1 ynp.zeros_like(x) for i in range(len(x)):y[i](4/np.pi)*np.sum(np.sin(k*x[i])/k) # print(t) # print(f) plt.plot(x,y) plt.show() 二&#xff0c;生成锯齿波和三角…

解决TeamViewer访问超时限制的问题

一、卸载TeamViewer:找到安装路径&#xff0c;点击uninstall卸载 二、修改MAC地址 1、查看现有的mac地址&#xff1a;打开cmd界面&#xff0c;输入ipconfig/all 按回车&#xff0c;红框标记为无线局域网mac地址。 2、修改现有无线局域网mac地址 &#xff08;1&#xff09;按住…

Linux系统中的load average

1. load average 定义 linux系统中的Load对当前CPU工作量的度量。简单的说是进程队列的长度。 Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均 Load 。 通过系统命令"w"查看当前load average情况 上边0.31&#xff0c;0.30&#xff0c;0.31表示 第一位0.…

工业机器人原来可以这么酷,马斯克和中国美的都对它青睐有加

来源&#xff1a;机器人大讲堂摘要&#xff1a;工业机器人或许是大家认为最枯燥的机器人之一了吧&#xff1f;每次机器人展会上&#xff0c;工业机器人的展位总会备受冷落&#xff0c;硬邦邦的机械臂相比呆萌可爱的服务机器人总是少了那么几分吸引力。但是&#xff0c;我们也不…

100年前没人信他,但他仅1项研究便远程摧毁万架飞机……

来源&#xff1a;世界科技创新论坛摘要&#xff1a;他是爱迪生最强大的对手&#xff0c;也是一个一生独立开发并取得专利700种&#xff0c;合作开发达1000种以上的科学狂人。科学界有一个普遍共识&#xff0c;人类历史上曾经存在过两个公认的旷世天才&#xff1a;达芬奇和尼古拉…

服务器安装opencv报错--libSM.so.6: cannot open shared ...+tensorflow 报错libcusolver.so.8.0: can not...

1.安装opencv出现以下错误&#xff1a; pip install opencv-contrib-python apt-get install -y python-qt4 apt-get install tk-dev python-tk 例如linux.zip.001, linux.zip.002, linux.zip.003... 首先 cat linux.zip* > linux.zip #合并为一个zip包 然后 unzip linu…

AlphaGo之后,DeepMind重磅推出AlphaFold:基因序列预测蛋白质结构

来源&#xff1a;机器之心摘要&#xff1a;Alphabet&#xff08;谷歌&#xff09;旗下公司 DeepMind 的人工智能 AlphaGo 曾在国际象棋、围棋等项目中取得了超越人类的表现&#xff0c;其研究不仅震惊世界&#xff0c;也两次登上 Nature。如今&#xff0c;该公司已将人工智能技…

李开复看2019投资趋势:最坏的时代将酝酿最伟大的公司

来源&#xff1a;网易智能摘要&#xff1a;12月3日下午&#xff0c;创新工场在北京举办了2019投资趋势分享会。创新工场创始人、董事长兼CEO李开复&#xff0c;创新工场联合创始人、管理合伙人汪华与创新工场合伙人张鹰对目前中国经济形势和投资趋势做了分析。01最坏的时代将酝…

高斯混合模型做聚类

概述 聚类算法大多数采用相似度来判断&#xff0c;而相似度又大多数采用欧式距离长短来衡量&#xff0c;而GMM采用了新的判断依据—–概率&#xff0c;即通过属于某一类的概率大小来判断最终的归属类别 。 GMM的基本思想就是&#xff1a;任意形状的概率分布都可以用多个高斯分…

基于深度学习的NLP 32页最新进展综述,190篇参考文献

来源&#xff1a;专知摘要&#xff1a;深度学习使用多层学习层次的数据表示,并在许多领域得到了最优的结果。最近,各种各样的模型设计和方法在自然语言处理(NLP)蓬勃发展。在本文中,我们回顾了被广泛应用于各种NLP任务的深度学习相关模型和算法以及它们的发展演变过程。我们还总…

.net framework摘抄与理解

1."源码"编译成"托管模块": 2.将"托管模块"合并成"托管程序集" 3.clr中的"JIT"执行"托管程序集" 第二次执行已被JIT编译成机器码的Console.WriteLine("") 转载于:https://www.cnblogs.com/doujiaomifan…

“新一代人工智能前沿与挑战”国际研讨会专家观点分享

来源&#xff1a;西电人工智能学院摘要&#xff1a;2018年11月25日-26日举办的“新一代人工智能前沿与挑战”中青年论坛暨第二十一届学术周在西安电子科技大学圆满落幕&#xff0c;研讨会上包括长江学者、IEEE Fellow、领域顶尖中青年学者、新锐企业领导者等在内的国内外权威专…

决策树算法及可视化

经典决策树算法包括ID3算法、C4.5算法以及GBDT的基分类器CART算法 ,ID3算法选择特征的依据是信息增益、C4.5是信息增益比&#xff0c;而CART则是Gini指数。 例子: 所谓信息增益就是数据在得到特征X的信息时使得类Y的信息不确定性减少的程度。假设数据集D的信息熵为H(D)&#x…

python多进程并发+pool多线程+共享变量

一&#xff0e;多进程 当计算机运行程序时&#xff0c;就会创建包含代码和状态的进程。这些进程会通过计算机的一个或多个CPU执行。不过&#xff0c;同一时刻每个CPU只会执行一个进程&#xff0c;然后不同进程间快速切换&#xff0c;给我们一种错觉&#xff0c;感觉好像多个程…

高通骁龙855发布,5G大幕拉开,新一轮手机大战在即

来源&#xff1a;网易智能摘要&#xff1a;高通终于公布下一代移动芯片骁龙855。美国时间12月4日&#xff0c;高通在美国夏威夷召开了第三届高通骁龙技术峰会&#xff0c;在峰会首日&#xff0c;骁龙855正式发布。并非外界传言的8150&#xff0c;高通还是沿用了之前的命名规则。…