在 RNN 中每隔几个序列重置 LSTM 中的 c_t 和 h_t
resetting c_t and h_t in LSTM every couple of sequences in RNN
我正在尝试在 Tensorflow 中实现 RNN 以进行文本预测。为此,我正在使用 BasicLSTMCell,序列长度为 100。
如果我没理解错的话,LSTM的输出activationh_t
和activationc_t
在我们每次输入一个新的序列时都会被重置(也就是说,它们会沿着序列更新100次, 但是一旦我们移动到批次中的下一个序列,它们就会重置为 0)。
有没有办法使用 Tensorflow 来防止这种情况发生?也就是说,继续使用更新后的 c_t
和 h_t
以及批次中的所有序列? (然后在移动到下一批时重置它们)。
我认为您不想这样做,因为批处理中的每个示例都应该是独立的。如果它们不是,你应该只有一个批量大小为 1 和一个长度为 100 * batch_size 的序列。通常您可能希望在批次之间保存状态。在这种情况下,您需要将 RNN 状态保存到一个变量中,或者像我喜欢的那样允许用户使用占位符输入它。
我正在尝试在 Tensorflow 中实现 RNN 以进行文本预测。为此,我正在使用 BasicLSTMCell,序列长度为 100。
如果我没理解错的话,LSTM的输出activationh_t
和activationc_t
在我们每次输入一个新的序列时都会被重置(也就是说,它们会沿着序列更新100次, 但是一旦我们移动到批次中的下一个序列,它们就会重置为 0)。
有没有办法使用 Tensorflow 来防止这种情况发生?也就是说,继续使用更新后的 c_t
和 h_t
以及批次中的所有序列? (然后在移动到下一批时重置它们)。
我认为您不想这样做,因为批处理中的每个示例都应该是独立的。如果它们不是,你应该只有一个批量大小为 1 和一个长度为 100 * batch_size 的序列。通常您可能希望在批次之间保存状态。在这种情况下,您需要将 RNN 状态保存到一个变量中,或者像我喜欢的那样允许用户使用占位符输入它。