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

Python Keras LSTM输入输出形状设置依据及参数疑问

关于你的LSTM模型参数设置疑问解答

输入形状input_shape=(30,1)的含义

LSTM层要求输入数据格式为(样本数, 时间步长, 特征数),input_shape只需指定后两个维度(样本数量会在训练时自动匹配数据集的样本数):

  • 这里的30代表每个样本的时间步长度,1代表每个时间步对应的特征数量。
  • 你的数据集形状是(143312, 30),代码里的设置相当于把每个样本的30个特征当成30个连续时间步,每个时间步仅输入1个特征值。这种设置是否合理,完全取决于数据性质:
    • 如果30个特征是时序数据(比如连续30天的日销售额、30个时刻的温度值),那这个输入形状是正确的;
    • 如果30个特征是独立非时序属性(比如用户的年龄、性别、消费等级等30个不同特征),那这么用LSTM不合适,要么改成input_shape=(1,30)(把30个特征作为1个时间步的多特征输入),要么直接用全连接网络(Dense层)处理更高效。

是否仅依据特征数量设置输入形状?

当然不是。输入形状的核心依据是数据的时序逻辑,而非单纯的特征数量。你必须先明确30个特征的实际意义:

  • 若为时序序列:按(时间步长, 单特征数)设置,比如你现在的(30,1);
  • 若为非时序多特征:按(1, 特征总数)设置,或者直接不用LSTM,用全连接层更高效。

Dense层设为5的依据

这个设置完全对应你的分类任务类别数。因为你用了softmax激活函数(多分类任务标准激活)和categorical_crossentropy损失函数(多分类任务标准损失),输出单元数5意味着你要将样本划分为5个不同类别。如果任务确实是5分类,这个设置没问题;如果实际类别数不是5,就要改成对应数字。

内容的提问来源于stack exchange,提问作者بتول

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:20:43