如何计算具有多个输出的 keras 模型的准确性?

数据挖掘 喀拉斯 准确性
2022-03-02 09:24:13

我有一个 keras 模型,它接收(最多)5 个 MNIST 数字的图像并输出一个长度,然后(最多)5 个数字。我看到model.evaluate()报告每个输出的准确性,但我如何确定模型在预测数字方面的效果如何?我需要自己写吗?

1个回答

这将需要一些工程 - 因为您有一个可变大小的输出,您需要将长度编码到输出中,以便评估整个模型的准确性。如果不是输出“最多 5 个数字”,而是输出一个包含 5 个预测的数组,其中一些非数字(例如 -1)表示不存在数字,那么您可以更好地评估您的网络。如果您像这样重新训练您的网络(其中X是图像数组和Y是一个包含形式数组的数组[1,4,3,1,1], 例如), 然后 model.evaluate(Xtest,Ytest) 将按预期工作。

如果您不想重新训练您的网络,您可以编写一个简单的函数来获取 model.predict(Xtest) 并将其编码为相应的格式。这个编码功能将简单地从[1,4,3][1,4,3,1,1]. 然后您可以通过 sklearn.metrics.accuracy_score(encode(模型.预测(Xtest)),Ytest), 在哪里encode就是前面提到的函数。