Tensorflow seq2seq: объект Tensor'не повторяется
Я использую 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 ответ
Решение
Похоже seq_input
это тензор, а не список тензоров. Один тензор отлично работает для tf.nn.dynamic_rnn
, но rnn_decoder
требует распаковки последовательности в список тензоров:
decoder_inputs
: Список 2D тензоров[batch_size x input_size]
,
В исходном коде вы можете видеть, что реализация просто перебирает decoder_inputs
в for
петля.