Keras非顺序模型没有model.predict_classes()方法如何获取测试数据分类的标签

Keras非顺序模型没有model.predict_classes()方法如何获取测试数据分类的标签

有时分类任务中,当我们用测试数据测试训练好的模型性能时,希望得到模型输出的标签。此时,若搭建的模型为顺序模型,即利用model=Sequential()顺序添加神经网络层时可以直接调用model.predict_calsses()获取预测的标签。

但对于非顺序模型,不存在predict_calsses()方法,我们只能利用predict()得到预测概率。那么这种情况我们如何获取预测标签呢?

有博主利用如下代码自行转化

pred=model.predict(X_test)
pred=np.armax(pred,axis=-1)

但是,np.armax(pred,axis=-1)返回值为最大值的索引,所以只能对多分类模型或者是以softmax作为输出层激活函数的二分类模型

对于输出层激活函数为sigmoid的模型,其输出只有一个数,所以利用上述方法所有输出都会被映射到一个标签,因此,针对这种情况。应该利用

Y_pred = model.predict(X_test)
Y_pred = np.int64(Y_pred>0.5)

进行转化,详情可以参考Keras model.predict_classes()源代码

你可能感兴趣的:(深度学习,神经网络)