Python Tensorflow:AttributeError:';元组';对象没有属性';评估';

Python Tensorflow:AttributeError:';元组';对象没有属性';评估';,python,machine-learning,tensorflow,Python,Machine Learning,Tensorflow,我试图按照这个例子来解码并运行一个经过训练的tensorflow模型,但看起来使用的tensorflow代码是一个旧版本。我已成功修复了对v 1.0.0的大多数调用,但在上面的代码行中出现以下错误时,我被卡住了: state = cell.zero_state(batchsize, tf.float32).eval() 发件人: LSTMCell、BasicLSTMCell和MultiRNNCell构造函数现在默认状态为“是”。要在转换到新默认值时快速修复,只需传递参数state\u is\u

我试图按照这个例子来解码并运行一个经过训练的tensorflow模型,但看起来使用的tensorflow代码是一个旧版本。我已成功修复了对v 1.0.0的大多数调用,但在上面的代码行中出现以下错误时,我被卡住了:

state = cell.zero_state(batchsize, tf.float32).eval()
发件人:

LSTMCell
BasicLSTMCell
MultiRNNCell
构造函数现在默认状态为“是”。要在转换到新默认值时快速修复,只需传递参数
state\u is\u tuple=False


这解释了您收到的错误消息(您不能对
元组调用
.eval()
)。

在这种情况下,您不能对Python对象-元组运行eval

一个选项是首先将Python对象转换为tensor:

guessed_logits, state = sess.run([logits, final_state], feed_dict={input_data: primer, initialstate: state})
致:

一旦它是一个张量,你就可以用以下方法计算它:

state = tf.convert_to_tensor(cell.zero_state(batchsize, tf.float32))
仅在上实现,但正如其他人所观察到的,该方法返回一个
tuple
对象

该方法了解如何解包元组,
tf.Tensor.eval()
只是一个方便的包装器,用于在中的单个张量上调用
tf.Session.run()
。使用此观察,您可以切换此行:

state.eval()
…具有以下特点:

state = cell.zero_state(batchsize, tf.float32).eval()

它返回以下内容:
ValueError:无法展平字典。键有4个元素,而值有1个元素。Key:[,],value:[]。
我无法将
状态\u is\u tuple=False
,您建议如何修复它?@Blizzard选择您感兴趣的tuple元素并对其进行评估。
state.eval()
state = cell.zero_state(batchsize, tf.float32).eval()
state = tf.get_default_session().run(cell.zero_state(batchsize, tf.float32))