Tensorflow seq2seq:Tensor'对象不可迭代

时间:2018-02-22 19:58:59

标签: tensorflow machine-learning lstm recurrent-neural-network sequence-to-sequence

我在代码下面使用seq2seq,我发现下面的错误:

cell = tf.nn.rnn_cell.BasicLSTMCell(size)
a, b = tf.nn.dynamic_rnn(cell, seq_input, dtype=tf.float32)
cell_a = tf.contrib.rnn.OutputProjectionWrapper(cell, frame_dim)
dec_output= tf.contrib.legacy_seq2seq.rnn_decoder(seq_input, b, cell_a)

但是我收到了错误:

TypeError: 'Tensor' object is not iterable.

我检查了它来自seq2seq行。

1 个答案:

答案 0 :(得分:2)

看起来seq_input是一个张量,而不是张量列表。单个张量适用于tf.nn.dynamic_rnn,但rnn_decoder要求将序列拆分为张量列表:

  

decoder_inputs:2D张量列表[batch_size x input_size]

source code中,您可以看到该实现只是在decoder_inputs循环中迭代for