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

关于LSTM层定位及神经网络架构分层的技术问询

问题解答

你的模型代码

model = Sequential(name="Activity_recognition_model")
model.add(LSTM(units, input_shape=(n_timesteps,n_features)))
model.add(Dense(128, activation = 'relu'))
model.add(Dropout(0.6))
model.add(Dense(64, activation='relu'))

model.add(Dropout(0.5))
model.add(Dense(n_outputs))
model.compile(loss='mae', optimizer='adam', metrics=[tf.keras.metrics.RootMeanSquaredError()])

注:n_features为输入特征数量。


问题1:LSTM层是否属于输入层,还是应将输入层与LSTM层设为两个独立层?

LSTM层不属于输入层,绘制架构时必须把输入层和LSTM层设为两个独立部分:

  • 输入层对应代码中input_shape=(n_timesteps,n_features)定义的张量结构,是模型接收原始时序数据的入口。这一层在Keras中无需显式添加,但绘制架构时必须单独展示,标注清楚输入维度:(时间步长n_timesteps, 特征数n_features)。
  • LSTM层是第一个循环隐藏层,负责对时序输入进行特征提取,属于模型的核心计算层,和输入层是完全独立的层级。

问题2:剩余的层是否为2个隐藏层加1个输出层?

是的,但需要明确层级性质:

  • 两个全连接隐藏层:Dense(128, activation='relu')和Dense(64, activation='relu'),这两层带有可训练参数,负责对LSTM输出的特征做进一步映射。
  • Dropout层(Dropout(0.6)、Dropout(0.5))属于正则化层,没有可训练参数,仅用于防止过拟合,绘制时可以标注在对应隐藏层的下方或旁边,但不算独立的隐藏层结构。
  • 输出层:Dense(n_outputs),是模型输出最终结果的层级,对应任务的输出维度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:45:30