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

调用model.predict传入单条样本时报Incompatible layer错误如何解决

问题根因

Keras的predict方法要求输入数据的格式为(批次大小, 特征维度)的二维张量。你直接取my_data_set[0]得到的是形状为(10,)的一维数组,框架会自动将这个一维数组的第一个维度识别为批次大小,认为你传入了10个单特征的样本,和模型要求的单样本10个特征的输入格式不匹配,所以触发维度报错。

排查思路

  • 调用predict前执行print(my_data_set[0].shape),会看到输出为(10,),而正常可运行的my_data_set形状是(6, 10),对比就能发现维度缺失问题。
  • 执行print(model.input_shape)可查看模型期望的输入形状为(None, 10),第一个维度为批次维度,第二个维度是特征数,和传入的一维数组形状不匹配。

解决方案

给单行数据新增一个批次维度即可,常用两种实现方式:

  1. 使用np.newaxis扩展维度
print(model.predict(my_data_set[0][np.newaxis, :]))
  1. 使用reshape方法调整形状
print(model.predict(my_data_set[0].reshape(1, -1)))

两种方式都会把原本形状为(10,)的数组转为(1, 10)的二维数组,符合模型的输入要求,即可正常得到预测结果。

内容的提问来源于stack exchange,提问作者whitepanda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:36:03