Python Tensorflow检查哪些示例预测正确,哪些预测错误(一种混淆矩阵)

Python Tensorflow检查哪些示例预测正确,哪些预测错误(一种混淆矩阵),python,tensorflow,Python,Tensorflow,我构建了两个不同的模型,我想检查这两个模型是否犯了相同的错误(错误地将相同的示例分类),或者它们是否犯了不同的错误。数据集只有两个标签:正/负 基本上我想要一个类似的混淆矩阵 #num示例两个模型预测正确num示例模型A预测正确,但模型B预测错误num示例模型B预测正确,但模型A预测错误num示例两个模型预测错误 即,假设数据集中的示例#1由模型A正确预测,但由模型B错误预测。示例#2由两者错误预测,示例#2由两者正确预测。Byt“正确预测”我的意思是如果标签是阴性,我预测为阴性,如果标签是阳性

我构建了两个不同的模型,我想检查这两个模型是否犯了相同的错误(错误地将相同的示例分类),或者它们是否犯了不同的错误。数据集只有两个标签:正/负

基本上我想要一个类似的混淆矩阵

#num示例两个模型预测正确
num示例模型A预测正确,但模型B预测错误
num示例模型B预测正确,但模型A预测错误
num示例两个模型预测错误

即,假设数据集中的示例#1由模型A正确预测,但由模型B错误预测。示例#2由两者错误预测,示例#2由两者正确预测。Byt“正确预测”我的意思是如果标签是阴性,我预测为阴性,如果标签是阳性,我预测为阳性

预期结果:
1 | 1 | 0 | 1

如果模型不是很大,并且可以同时将它们放在内存中,您可以初始化这两个模型(所有层、权重等),在这两个模型上加载经过训练的值,然后设置一种测试方法,对批次执行推断并检查每个模型的正/负。给定两个与相同测试值对应的正/负向量,可以创建一个复合向量

通过将视为1,将视为0,您可以:

vectorCompound = vectorModel1 + 2*vectorModel2
这样,您就可以在
vectorcomponent
中收集值:

  • 0:都是负数
  • 1:模型1为正,模型2为负
  • 2:模型2为正,模型1为负
  • 3:都是肯定的 从这里开始,创建矩阵应该很简单

这有点宽泛。你已经试过什么了?我在
相关部分看到多个问题。@Framester我看到的所有相关问题都是,如果您只有一个模型,请查找TP/FP/FN/TN,如果您有两个不同的模型,请查看是否有相同或不同的错误。我找不到答案,也不想重新发明轮子。我查看了sci工具包库文档,但没有找到方法。我更新了我的问题