我正在尝试训练一个LSTM层的模型,使用时间序列数据,其中包含分类(独热编码)的动作(call/fold/raise)和时间。例如,3轮中玩家2x先是call,然后是fold的时间序列。
#Call #0.5s # Call #0.3s #Fold, 1.5s[[[1,0,0], 0.5], [[1,0,0], 0.3], [[0,1,0], 1.5]]
包含call/fold/raise的分类数组无法被第一层(LSTM)处理,并且由于时间不是分类数据,我无法使用简单的嵌入层。
第一层 – model.add(LSTM(500, return_sequences=True, input_shape=(3, 2)))
我尝试过更改input_shape,但对我来说没有任何效果。有什么想法可以同时表示独热编码和浮点数的输入吗?
回答:
你可以简单地进行拼接,不需要嵌入,因为你的独热编码维度并不高,而且独热编码本身就是一种嵌入。
所以我会尝试使用向量序列:
[[1,0,0,0.5], [1,0,0,0.3], [0,1,0,1.5]]
LSTM或你使用的任何层都会明白前三个值表示动作,最后一个值是其他东西(时间),不用担心这一点。
model.add(LSTM(500, return_sequences=True, input_shape=(3, 2)))
应该可以工作。