首页 > 解决方案 > Keras 中 LSTM 的多变量输出的输出序列

问题描述

请帮助了解如何在 Keras 中为 LSTM 网络形成输出序列。例如我有数据

[[1]
 [2]
 [3]
 [4]
 [5]]

我可以根据 [samples, timesteps, features] 张量输入序列 - 假设 3 个输入序列和 2 个输出。所以

Input seq      Output seq
[[[1,2,3]]] -> [[4, 5]] 

但是多变量输入和输出呢?!
神经网络可能是多个神经元——每个特征一个神经元示例(两个特征数据,两个特征输入和两个特征输出):

数据:

[[1, 10]
 [2, 20]
 [3, 30]
 [4, 40]
 [5, 50]]

输入张量(样本,时间步长 - 3,特征 - 2)

[[[1, 2, 3], [10, 20, 30]]]

但是 Y 的输出矩阵

[[4, 5, 30, 40]] 

我可以得出结论,在 Keras 的情况下,我们只能为一个特征形成输出序列吗?

谢谢,

标签: kerasoutputlstm

解决方案


对于多变量,如果您的数据具有您在问题中提到的 2 个特征,它也将是相似的:

[[1, 10]
 [2, 20]
 [3, 30]
 [4, 40]
 [5, 50]]

你想用Input tensor (samples, timesteps - 3, features - 2)3 个时间步来准备它,每条记录有 2 个变量,那么它看起来像下面这样:

 x=[
      [[1,10],[2,20],[3,30]],
      [[2,20],[3,30],[4,40]],
      [[3,30],[4,40],[5,50]]       
  ]
y=[[4, 5],[5,6],[6,7]] 

我只是假设您的值是 6 和 7,否则根据您给定的数据,您只能在 x 中有一个 (1) 记录,即(1 个样本,3 个时间步长,2 个特征)

 x=[
          [[1,10],[2,20],[3,30]]
   ]

只有一个 y 的记录

y=[[4, 5]]

推荐阅读