重置LSTM状态时

时间:2016-08-01 09:52:10

标签: python tensorflow state lstm

我尝试使用tensorflow实现LSTM神经网络来进行关键字检测。我给神经网络喂了400ms的序列。但是,在训练期间,我并不希望LSTM在尝试学习序列6时记住序列1。那么如何在训练期间重置LSTM的状态。 outputs, state = rnn.rnn(cell, inputs, initial_state=self._initial_state)参数中的initial_state是否允许在整个批次进给后重置LSTM的内存?

我尝试通过此链接了解实施情况:

https://github.com/tensorflow/models/blob/master/tutorials/rnn/ptb/ptb_word_lm.py

1 个答案:

答案 0 :(得分:2)

ptb_word_lm.py self._initial_state在整个程序中只设置一次:

self._initial_state = cell.zero_state(batch_size, data_type())

这意味着,它仍然是一个恒定的零向量。因此,展开LSTM的初始状态始终为零。在批量送入后,您不需要显式重置内存。

如果您想手动更新LSTM状态/ self._initial_state,则需要将其定义为变量而不是Tensor。有关详细信息,请参阅答案here