Tensorflow seq2seq:张量的对象不可迭代
Tensorflow seq2seq: Tensor' object is not iterable
我在下面的代码中使用 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 行。
看起来 seq_input
是张量,而不是张量列表。单个张量适用于 tf.nn.dynamic_rnn
,但 rnn_decoder
需要将序列拆分为张量列表:
decoder_inputs
: A list of 2D Tensors [batch_size x input_size]
.
在 source code 中,您可以看到该实现只是在 for
循环中迭代 decoder_inputs
。
我在下面的代码中使用 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 行。
看起来 seq_input
是张量,而不是张量列表。单个张量适用于 tf.nn.dynamic_rnn
,但 rnn_decoder
需要将序列拆分为张量列表:
decoder_inputs
: A list of 2D Tensors[batch_size x input_size]
.
在 source code 中,您可以看到该实现只是在 for
循环中迭代 decoder_inputs
。