You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:35:19