keras 未定义名称“predicted_class”

gg58donl  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(134)

我尝试运行混淆矩阵代码。在此之前,我使用

print_confusion_matrix(Y_val_org, model.predict_classes(X))

但此函数已弃用,则更改为

predict_x=model.predict(X) 
classes_x=np.argmax(predict_x,axis=1.

现在我有一个新的错误,就是不能显示confssion矩阵标签。
编码:

def print_confusion_matrix(y_true, y_pred):
    cm = confusion_matrix(y_true, y_pred)
    print('True positive = ', cm[0][0])
    print('False positive = ', cm[0][1])
    print('False negative = ', cm[1][0])
    print('True negative = ', cm[1][1])
    print('\n')
    df_cm = pd.DataFrame(cm, range(2), range(2))
    sn.set(font_scale=1.4) # for label size
    sn.heatmap(df_cm, annot=True, annot_kws={"size": 16}) # font size
    plt.ylabel('Actual label', size = 20)
    plt.xlabel('Predicted label', size = 20)
    plt.xticks(np.arange(2), ['Fake', 'Real'], size = 16)
    plt.yticks(np.arange(2), ['Fake', 'Real'], size = 16)
    plt.ylim([2, 0])
    plt.show()

predict_x=model.predict(X) 
classes_x=np.argmax(predict_x,axis=1)
print(predicted_class)

错误:

NameError: name 'predicted_class' is not defined

我不知道在哪里定义predicted_class,当我运行代码时仍然有错误

yc0p9oo0

yc0p9oo01#

我猜是打印错误。只需将classes_x更改为predicted_class

predicted_class=np.argmax(predict_x,axis=1)
print(predicted_class)

谢谢你,先生,我刚刚注意到它。还有一个问题,如果我想打印混淆矩阵。我只需要输入它之前预测或之后预测?
最好的做法是,你可以在预测后打印混淆矩阵。

相关问题