张量流中批次中每个项目的 LSTM 初始状态

LSTM initial state for each item in the batch in tensorflow

我正在使用 tf.nn.dynamic_rnn 到 运行 tensorflow 中的 LSTM。我有一个 N 个初始状态向量的张量和一个 M = N * n 个输入的张量。每个系列由n个输入项组成,我想用第i个初始状态向量评估第i组输入向量,如下所示:

inputs[0:n], initial_states[0]
inputs[n:2*n], initial_states[1]
...

有没有办法通过一次调用 tf.nn.dynamic_rnn 和上面的张量直接完成,或者我是否必须对每个初始状态向量及其相应的输入求助于一个循环(导致 len(initial_states) 呼叫 tf.nn.dynamic_rnn)?

(从对问题的评论中添加一些细节)

这种批处理得到很好的支持,通常是获得良好性能所必需的。您的 initial_state 将具有超过 N 的批次维度,并且 RNN 将 运行 在这些批次上进行 n 步。您只需要将输入重塑为 [N, n, ...](使用 time_major=False,默认值)。

当您有需要一起批处理的可变长度输入时,它会变得更加棘手。 SequenceQueueingStateSaver 之类的东西可以提供帮助。