Keras predict函数报错“TypeError:仅整数标量数组可转为标量索引”原因
解决Keras predict调用时的参数错误问题
嘿,我一眼就发现问题所在啦——你在调用model.predict()的时候传错参数了!
错误原因
Keras的predict()方法只需要传入待预测的输入数据(也就是你的X_test),不需要把真实标签Y_test也传进去。你写的pred = model.predict(X_test, Y_test)里,第二个参数实际上是用来指定batch_size的,而你的Y_test是二维的独热编码数组,模型把它当成batch_size参数自然就会报错。
修改后的代码
把预测那行改成下面这样就可以正常运行了:
pred = model.predict(X_test) print(pred)
新手补充小贴士
- 如果你想用测试集的真实标签评估模型性能(比如准确率、损失),应该用
model.evaluate()方法,它才需要同时传入输入和标签:loss, accuracy = model.evaluate(X_test, Y_test) print(f"测试集损失: {loss}, 测试集准确率: {accuracy}") - 因为你的Y是独热编码格式,想要直观对比预测结果和真实类别,可以把独热编码转成类别索引:
pred_classes = np.argmax(pred, axis=1) true_classes = np.argmax(Y_test, axis=1) print("预测类别索引:", pred_classes) print("真实类别索引:", true_classes)
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

