【问题标题】:How to correctly configure Encoder Decoder LSTM to have one timestep output carrying multiple features如何正确配置 Encoder Decoder LSTM 使一个时间步输出携带多个特征
【发布时间】:2022-12-16 05:25:05
【问题描述】:

在每次观察中,我有 6 个时间步长,每个时间步长有 2 个特征,我试图预测 1 个具有 2 个并行特征的 timetsep。进一步来说,

我的输入数据的形状是:(81, 6, 2) 我的输出数据的形状是:(81, 1, 2)

我编写了以下代码来构建编码器-解码器 LSTM:

model.add(LSTM(200, activation='relu', input_shape=(n_input, 2)))
model.add(RepeatVector(1))
model.add(LSTM(200, activation='relu', return_sequences=True))
model.add(TimeDistributed(Dense(100, activation='relu')))
model.add(TimeDistributed(Dense(2)))

当我执行单个预测时,网络返回形状 (1, 1, 2)。

我想仔细检查这是否正确,我没有遗漏任何东西,因为预测值非常糟糕(有些为负,有些则非常高)。

【问题讨论】:

  • 第一个维度是您的批量大小,因此如果您使用单个样本进行预测,那么是的,您的输出将是:(1, 1, 2)。可能影响您性能的一件事是您在 TimeDistributed 层中进行的重新缩放。您将从 2-dim LSTM 输出到 100-dim 输出回到 2D。

标签: python tensorflow keras deep-learning lstm


【解决方案1】:

做出错误的预测是另一回事。你回来的形状是正确的。它显示了 Dense(2) 层中指定的 (samples, timesteps, features) => (1, 1, 2)。

【讨论】:

    猜你喜欢
    • 2022-09-24
    • 2020-04-11
    • 2021-12-17
    • 2018-12-23
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多