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

如何正确设置TensorFlow Sequential模型输入层的shape?

问题原因与解决方案

核心错误点

你设置的输入层参数完全错误,问题源于对Keras全连接层input_shape参数的定义理解偏差:

  • 你的训练集形状(5420, 212)中,第一个值5420是训练样本总数量,第二个值212才是单条样本的特征数量
  • Keras的input_shape参数不需要传入样本总数,仅需要指定单条样本的特征维度,样本数量、batch大小会由框架自动适配,无需手动声明

报错逻辑

你设置input_shape = (5420,)相当于告诉模型:单条输入样本需要有5420个特征,但实际你的单条样本只有212个特征,因此触发维度不匹配的报错。

修正方案

只需要修改输入层的input_shape参数即可,修正后的完整代码如下:

model = models.Sequential()
# 仅修改这一行的input_shape值为212即可
model.add(layers.Dense(64, activation='relu', input_shape = (212,)))
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(5, activation='softmax'))
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
model.summary()
history = model.fit(X_train, y_train, epochs=20, batch_size=512)

额外说明

全连接层(Dense)的输入仅需要指定特征维度即可,只有处理图像、时序等结构化数据的卷积层、循环层才需要传入更高维度的输入形状。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:24:04