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

时间:2017-09-03 15:27:06

标签: python-3.x machine-learning tensorflow lstm rnn

我正在使用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和上述张量,或者我必须求助于每个初始状态向量及其相应输入的循环(导致{{1}调用len(initial_states))?

1 个答案:

答案 0 :(得分:1)

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

这种批处理得到很好的支持,通常是获得良好性能所必需的。您的initial_state将具有超过N的批量维度,并且RNN将在这些批次上运行n步。您只需要将输入重新整形为[N,n,...](默认值为 num = int(input('Enter a number: ')) for i in range(num): x = 2 if num % 2 == 0: print(num, x, 'is even') else: if num > 1 and all(num % i for i in xrange(2, sqrt(num))): print(num,x,'is prime') else: print(num,x,"is odd") num -=1 )。

当您需要将可变长度输入需要批处理时,它会变得更加棘手。像SequenceQueueingStateSaver这样的东西可以帮到那里。