多个LSTM模型输出形状,用于预测时间序列数据中的序列

时间:2020-09-28 08:57:20

标签: python tensorflow many-to-many lstm dna-sequence

我正在建立许多LSTM来预测时间序列。

原始时间序列数据形状:nx23

'ATTCG' 'ATGCC' ... 'ATGCA' 
'ATGTG' 'ATTGC' ... 'AATGA'
...
'ATTCG' 'ATGCC' ... 'ATGCA'

我已经处理了数据,以使一个数据点的时间窗口为3。处理后的数据用于时间序列预测形状nx3x5x4。因此,每个数据点的最终形状为(no of time steps x number of character in seq x no of unique characters)

  x       y
3X5X4   3X5X4
3X5X4   3X5X4
...
3X5X4   3X5X4

我需要在每个时间点输出5x4,以便对照y(一个热编码序列)进行检查。我考虑过以以下方式实现它,但是由于(5x4)形状而导致输出形状不正确并且出现严重错误。

model.add(LSTM(units=(5x4), input_shape=(3,(5x4)), return_sequences=True))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()

但是,如果我弄平onehot编码的序列,我的数据将采用以下形式。

  x       y
3X20   3X20
3X20   3X20
...
3X20   3X20

并且LSTM模型可以完美运行。

model.add(LSTM(units=20, input_shape=(3,20), return_sequences=True))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.summary()

但是此模型提供了3x20的暗淡输出,我无法在上面输出softmax。

任何建议如何获得可叠加softmax的5x4输出的方法都会有很大帮助。

谢谢。

0 个答案:

没有答案