我将我的意见从https://github.com/tensorflow/tensorflow/issues/8833转移到StackOverflow,因为SO似乎更合适。TensorFlow LSTM状态从元组切换到张量
我在尝试使用tensorflow.contrib.seq2seq
和tensorflow.contrib.rnn
的BasicLSTMCell
实现序列模型。在rnn_cell_impl.py
,行c, h = state
导致以下错误:
TypeError: 'Tensor' object is not iterable.
当单步调试代码,我才知道,错误造成的第三次c, h = state
进行评估。前两次,状态为<class 'tensorflow.python.ops.rnn_cell_impl.LSTMStateTuple'>
,但第三次状态为<class 'tensorflow.python.framework.ops.Tensor'>
。显然,我想第三次有类型LSTMStateTuple,但我不知道什么可能导致交换机。
有问题的state
张量的名称是define_model/define_decoder/decoder/while/Identity_3
。我写了define_model()
和define_decoder()
的方法,其余的信息表明我的decoder
内发生了一些事情。
如果相关,我使用Python 3.6和Tensorflow 1.2。