python - 在 RNN 中每对序列重置 LSTM 中的 c_t 和 h_t

标签 python neural-network tensorflow recurrent-neural-network lstm

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

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

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

最佳答案

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

关于python - 在 RNN 中每对序列重置 LSTM 中的 c_t 和 h_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40823341/

相关文章:

python - Ubuntu python 3.7 到 3.8 更新替代方案

python - keras 中 softmax 输出的一个热输入

neural-network - 弹性反向传播神经网络 - 关于梯度的问题

machine-learning - 用于(转换)神经网络计算的CPU与GPU

Tensorflow:将文件的全部内容恰好一次读入单个张量

python - 属性错误: 'Node' object has no attribute 'outbound_layers'

python - 遍历 Redis 键

python - 汤类选择器返回一个空列表

tensorflow - 如何使用 Keras API 在 Tensorflow 2.0 中的多个 GPU 上加载模型后继续训练?

python - ValueError : Cannot feed value of shape (200, ) 对于张量 'Placeholder_32:0' ,其形状为 '(?, 1)'