这个问题一直困扰很久
AttributeError: ‘Sequential’ object has no
attribute ‘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)
已解决