【问题标题】:LSTM Many to One Prediction Example in KerasKeras 中的 LSTM 多对一预测示例
【发布时间】:2017-07-15 13:23:26
【问题描述】:

我想为像我这样刚接触 Keras 的人创建一个多对一预测模型的示例。

给定 4 个彼此相差 90 度的正弦波,使用三个来预测第四个。文档非常不清楚,示例是 90 % 的 CNN,其余的也是一种分类形式。

所以 X1 X2 和 X3 将是 0、90 和 270 异相。标签数据将与第一个相差八十分之一。

那么如何构建 Y?会不会和 X 的形状一样,只是复制了 270 度相位数据?有没有办法将 Y 数据本身作为单个输入?您是否必须对 Y 数据进行回顾?你能给我一个 Y 目标,每个 X 都有回溯吗?

我在一篇文章中看到第一行建议您可以使用 features==3 来连接 Y 数据预测,但同样没有示例。

由于我看到同样的问题以许多不同的方式发布但没有解决方案,我愿意花一些时间创建一个最佳实践示例,并在 Kaggle 上创建了一个可以使用的数据集。 (https://www.kaggle.com/superdave/test-driven-data/downloads/FourOutOfPhaseWaves.csv)

有没有接近的例子或指针?

是的,我想使用 LSTM 或 GRU。我已经测试了许多单输入波形,并获得了出色的结果。 https://www.kaggle.com/superdave/test-driven-data。我想发布一个解决方案,但看到一个最大的缺失示例是多对一的 LSTM 预测。带有正弦波的玩具示例应该是社区的重要补充。

【问题讨论】:

    标签: label keras prediction lstm many-to-one


    【解决方案1】:

    您要达到的目标的简短示例。

    x = np.random.rand(1000,3,1)
    y = np.random.rand(1000,1)
    

    x 是包含 3 个正弦波的输入数据(3d 数组)。 y 是二维数组中的第四波。

    然后是一个简单的模型

    model = Sequential()
    model.add(LSTM(4,activation='relu',input_shape=(x.shape[1],x.shape[2])))
    model.add(Dense(1,activation='linear'))
    model.compile(optimizer='rmsprop',loss='mse')
    model.fit(x,y,epochs=30)
    

    【讨论】:

      猜你喜欢
      • 2017-08-19
      • 2017-12-30
      • 2017-07-15
      • 2018-02-16
      • 1970-01-01
      • 2021-04-21
      • 2017-08-15
      • 2021-08-13
      • 1970-01-01
      相关资源
      最近更新 更多