有状态LSTM在语言建模中的混淆重用

时间:2019-02-16 16:22:27

标签: python tensorflow language-model

我看过基本语言模型的github代码 https://github.com/tensorflow/models/blob/master/tutorials/rnn/ptb/ptb_word_lm.py,并尝试为我的项目实施一个。它使用有状态的LSTM或在批之间保存lstm的状态。我对此行为感到困惑,为什么在语言模型中首先需要使用它。因为假设批处理大小为20。lstm隐藏大小为1500。因此请声明lstm [20,1500]的大小。因此,不必保存批次的状态并在下一个批次中使用,因为下一个批次将具有完全不同的顺序。在下一批中,此保存状态如何同步到lstm的隐藏状态?有人可以告诉我在分块序列的情况下需要跨批保存lstm的状态吗?在这种语言模型的情况下,它有什么用?输入的输入是考虑序列中固定数量的单词,而不是整个序列中的句子,而是成批传递多个序列,因此理想情况下是将分块序列作为输入的情况。但是有状态的lstm在批处理大小为1的情况下很有用,但是对于batch_size> 1这样的情况,它如何有用?

0 个答案:

没有答案