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

非序列Keras模型输入形状不兼容错误的修复方法

问题分析与修复方案

问题根源

你训练时用字典形式按名称传递输入数据,但验证数据用元组形式按顺序传递,这种混合传递方式可能引发输入匹配问题;更关键的是,你的X_valid_B实际形状为(None,5),不符合模型deep_input期望的6个特征要求。

修复步骤

1. 统一输入传递格式

将验证数据改为字典形式传递,按输入名称匹配,彻底避免顺序错误:

history = complex_model_2_1.fit(
    {"wide_input": X_train_A, "deep_input": X_train_B},
    y_train,
    epochs=20,
    validation_data=(
        {"wide_input": X_valid_A, "deep_input": X_valid_B},
        y_valid
    )
)

2. 验证数据特征数正确性

检查X_valid的特征数是否和X_train一致为8个,添加打印语句确认:

print(f"Shape of X_valid: {X_valid.shape}")
print(f"Shape of X_valid_B: {X_valid_B.shape}")

如果X_valid特征数不是8,说明你在分割训练/验证集时出现错误,需重新检查数据分割代码,确保特征维度一致。

3. 确认所有输入数据的特征数

对测试集和新数据也做同样的检查,确保X_test_B、X_new_B的形状都是(None,6):

print(f"Shape of X_test_B: {X_test_B.shape}")
print(f"Shape of X_new_B: {X_new_B.shape}")

补充说明

你提到Gemini给出的X_train_B = X_train[:,5:]是错误的,因为这会只取最后3个特征,完全不符合模型deep_input需要6个特征的要求,你的原始切片X_train[:,2:]是正确的(8个特征中取索引2到7,共6个特征)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 05:44:55