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

ValueError:Data cardinality is ambiguous 样本量不匹配报错如何解决

报错原因解释

这个报错是深度学习训练的基础规则触发的:

  • 框架调用fit()训练时,要求输入特征x和标签y的第一维度(即样本总数量)必须完全相等,每一条输入特征要对应唯一的一条标签
  • 你当前输入self.data_inputs的第一维度是3,也就是框架判定你有3条训练样本;但标签self.data_outputs的第一维度是13,框架判定你有13条标签,二者数量不匹配,框架无法确定3个输入和13个标签的对应关系,因此提示ambiguous(数据对应关系含糊不清)
代码问题定位

你的输入构造逻辑出错了:

self.data_inputs = np.array([[self.car_location], [self.car_velocity], [self.ball_location]]).astype(np.float)

这段代码把车辆位置、车辆速度、球位置三个特征各自作为独立的样本堆叠,最终得到的self.data_inputs形状是(3, 1, 特征维度),第一维度样本数为3。而你构造的输出是长度为13的一维数组,形状为(13,),样本数为13,二者完全不匹配。

修复方案

你应该是要把车辆位置、速度、球位置三个特征拼接为1条样本的全部特征,对应1条13维的动作标签,修改代码如下:

# 把三个特征拉平后拼接,外层再加一层维度代表样本数为1
self.data_inputs = np.array([np.concatenate([self.car_location, self.car_velocity, self.ball_location])]).astype(np.float)
# 给输出标签也加外层维度,代表1条样本的标签
self.data_outputs = np.array([[1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]]).astype(np.float)

修改后输入形状为(1, 特征总维度),输出形状为(1, 13),二者样本数均为1,即可正常训练。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:54:03