尝试获取经过训练的 CNN 模型的混淆矩阵时出现 ValueError

Getting ValueError when trying to obtain confusion matrix of trained CNN model

我有一个分类问题,我在其中训练了一个 CNN,现在我希望我能获得它的混淆矩阵。我尝试了以下方法:

from sklearn.metrics import confusion_matrix

y_pred = model.predict(x_test)
#Generate the confusion matrix
cf_matrix = confusion_matrix(y_test, y_pred)

print(cf_matrix)

但是我得到以下错误:

ValueError: Classification metrics can't handle a mix of unknown and continuous-multioutput targets

x_test(84, 32, 32) - 84 张形状为 32x32

的单色图像组成

有办法解决这个问题吗?

附录:模型总结(注:输出激活fn为softmax)

根据评论总结一下,有两个问题:

  1. confusion_matrix 需要 class 标签,而不是具有 softmax 激活的密集层的 logits 输出。只需执行以下操作即可解决此问题:

y_pred = np.argmax(y_pred, axis=1)

  1. y_true 被识别为具有 unknown 类型的目标(参见错误)。因此,请确保它具有正确的数据类型(即真实的 class 标签)。