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

AutoKeras执行reg.fit时报StructuredDataInput输入形状不匹配错误如何解决

报错原因

StructuredDataInput是专门为结构化表格数据设计的输入层,强制要求输入为二维结构,维度对应规则为 [批次大小, 单样本特征总数]。你当前传入的训练数据维度为[32, 100, 1],属于三维结构,多出来的最后一维长度为1的冗余维度不符合该输入层的设计预期,因此触发维度不匹配的ValueError。

解决方法
  • 移除冗余维度:如果最后一维是数据预处理时生成的无实际含义的冗余维度,直接调用squeeze方法删除长度为1的维度即可:
    # 适配numpy数组
    X_train = X_train.squeeze(axis=-1)
    # 适配TensorFlow张量
    # import tensorflow as tf
    # X_train = tf.squeeze(X_train, axis=-1)
    
    处理后X_train的维度会变为[样本总数, 100],完全符合StructuredDataInput的输入要求。
  • 更换适配的输入层:如果最后一维存在实际业务含义(比如是时序数据的单变量维度、图像的单通道维度),说明你选错了输入层类型,将StructuredDataInput替换为对应场景的输入层即可:时序场景可使用Input(shape=(100, 1))搭配LSTM、Conv1D等时序层;图像场景可替换为2D输入层搭配卷积层。
  • 显式指定批次大小:维度调整完成后如果仍有报错,可在reg.fit()方法中显式传入batch_size=32参数,避免框架自动推断批次参数时出现维度错位。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:06:03