Keras不同尺寸输入神经网络拟合时数据基数不匹配报错求助
Keras多输入数据不匹配问题解决办法
报错原因
你输入的向量v样本数是70,矩阵A样本数是312,但目标向量u的样本数是70,三者样本数量不一致。Keras要求所有输入和输出的第一维(样本数)必须完全相同,否则会触发数据 cardinality 不匹配的报错。
解决步骤
- 检查数据维度:分别打印
v、A、u的形状,确认第一维(样本数)是否一致。比如:
正常情况下三者第一维都应该是70,比如print(v.shape) print(A.shape) print(u.shape)v是(70, 向量维度),A是(70, 矩阵行数, 矩阵列数),u是(70, 输出向量维度)。 - 对齐样本数量:如果
A的样本数多了,直接截取和v、u匹配的样本,比如取前70个:
如果是样本数少了,需要补充对应样本(补充时要保证数据逻辑合理,比如用重复、插值等方式,具体看你的数据场景)。A = A[:70] - 重新验证&拟合:调整后再次打印三者形状,确认第一维一致后,再调用模型拟合:
model.fit([v, A], u, epochs=..., batch_size=...)
注意点
别把特征维度和样本数搞混——比如如果A的形状是(行数, 列数)而不是(样本数, 行数, 列数),那你需要先给A增加样本维度,比如用A = A[np.newaxis, ...],但前提是样本数要和v、u匹配。
内容的提问来源于stack exchange,提问作者Bran
相关产品推荐
相关产品推荐

