Seq2Seq用于预测复杂状态

时间:2015-11-20 14:17:46

标签: tensorflow lstm

我的问题: 我有一系列复杂的状态,我想预测未来的状态。

输入: 我有一系列的状态。每个序列可以是可变长度的。每个州都是一个时刻,由几个属性描述:[att1,att2,...]。其中每个属性是区间[[0..5],[1..3651],...]

之间的数字

Seq2Seq的示例(和论文)基于每个状态(单词)取自其​​字典。因此每个州有大约80,000种可能性。但是,当从一组向量中获取每个状态时,您将如何表示每个状态,而该组只是属性的每个可能组合。

是否有任何方法可以使用TensorFlow处理更复杂的状态?另外,当输入长度和输出长度之间的关系不清楚时,什么是好的方法确定你的桶的边界?

1 个答案:

答案 0 :(得分:4)

我可以建议将您的问题重新分类并分成两部分吗?第一个是一般的机器学习/ LSTM问题,它独立于张量流:如何使用LSTM来预测序列元素何时是一般向量,第二个是如何在张量流中表示这一点。对于前者 - 在那里做任何事都没有什么神奇之处。

但答案很快:你真的只是跳过了seq2seq的嵌入查找部分。您可以将密集张量输入到其适当修改的版本中 - 您的状态只是状态的密集向量表示。这与嵌入式查找相同。

vector representation tutorial讨论了预处理,例如,将单词转换为嵌入,以便在学习管道的后续部分中使用。

如果查看line 139 of seq2seq.py,您会看到embedding_rnn_decoder接受一批事情来决定(维度是批处理中的元素),但是然后使用嵌入查找将其转换为batch_size * cell.input_size张量。您希望直接在RNN中输入batch_size * cell.input_size张量,跳过嵌入步骤。