我正在使用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)
)?
答案 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这样的东西可以帮到那里。