首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在keras中使用LSTM正确地训练模型来预测移动平均值?

如何在keras中使用LSTM正确地训练模型来预测移动平均值?
EN

Stack Overflow用户
提问于 2021-01-24 01:31:20
回答 1查看 78关注 0票数 0

我正在学习如何在Keras上训练RNN模型,我希望训练一个模型来预测最后N步的移动平均值将非常容易。

我有一个包含数千步的时间序列,我能够创建一个模型,并用批量数据对其进行训练。

但是,如果我用以下模型训练它,测试集预测与真实值有很大不同。(批次= 30,移动平均窗口= 10)

代码语言:javascript
复制
inputs = tf.keras.Input(shape=(batch_length, num_features))
x = tf.keras.layers.LSTM(10, return_sequences=False)(inputs)
outputs = tf.keras.layers.Dense(num_labels)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs, name="test_model") 

为了能够获得好的预测,我需要添加另一层TimeDistributed,获得2D预测而不是1D预测(每个时间步我都会得到一个预测)

代码语言:javascript
复制
inputs = tf.keras.Input(shape=(batch_length, num_features))
x = tf.keras.layers.LSTM(10, return_sequences=True)(inputs)
x = tf.keras.layers.TimeDistributed(tf.keras.layers.Dense(num_labels))(x)
outputs = tf.keras.layers.Dense(num_labels)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs, name="test_model")

EN

回答 1

Stack Overflow用户

发布于 2021-01-24 01:52:42

我建议,如果你的目标是给出最后10个时间步长作为输入,并将移动平均作为预测,那么可以尝试使用具有密集连接层的回归模型,而不是RNN。(使用正则化的线性激活可能工作得足够好)

该选项的训练和运行成本将比LSTM更低

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65862277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档