Python 在RNN中每隔两个序列重置LSTM中的c_t和h_t

Python 在RNN中每隔两个序列重置LSTM中的c_t和h_t,python,neural-network,tensorflow,recurrent-neural-network,lstm,Python,Neural Network,Tensorflow,Recurrent Neural Network,Lstm,我正在尝试在Tensorflow中实现RNN,用于文本预测。我使用BasicLSTMCell实现此目的,序列长度为100 如果我理解正确,每次我们输入新序列时,LSTM的输出激活h_t和激活c_t都会重置(也就是说,它们会沿着序列更新100次,但一旦我们移动到批次中的下一个序列,它们就会重置为0) 有没有办法使用Tensorflow防止这种情况发生?也就是说,要在批处理中的所有序列上继续使用更新的c_t和h_t?(然后在移动到下一批时重置它们)。我认为您不想这样做,因为批中的每个示例都应该是独立

我正在尝试在Tensorflow中实现RNN,用于文本预测。我使用BasicLSTMCell实现此目的,序列长度为100

如果我理解正确,每次我们输入新序列时,LSTM的输出激活
h_t
和激活
c_t
都会重置(也就是说,它们会沿着序列更新100次,但一旦我们移动到批次中的下一个序列,它们就会重置为0)


有没有办法使用Tensorflow防止这种情况发生?也就是说,要在批处理中的所有序列上继续使用更新的
c_t
h_t
?(然后在移动到下一批时重置它们)。

我认为您不想这样做,因为批中的每个示例都应该是独立的。如果它们不是,则批大小应为1,序列长度为100*batch_size。通常,您可能希望在批之间保存状态。在这种情况下,您需要将RNN状态保存到一个变量中,或者允许用户使用占位符将其输入。

Keras中有一个
stateful\u RNN
的可能副本,它有一个用途,例如,处理不同长度的序列。是的,但这会像我说的那样在批之间保存它,并且不会将状态应用到批中的下一个序列。我同意大多数情况下,批设置不需要
stateful\n
。然而,有时长序列和宽序列的批次不能很好地放入内存中。