打印tensorflow变量seq2seq

打印tensorflow变量seq2seq,tensorflow,Tensorflow,我正在尝试用tensorflow seq2seq代码打印一个tensor attns 我试过: tf.Print(attns, [attns]) 但它什么也没印出来 我试过了 sess = tf.Session() sess.run(attns) or attns.eval() 在这种情况下,它抛出:InvalidArgumentError:必须为占位符张量提供一个值 我也尝试过使用sess.run sess = tf.get_default_session() aa = sess.run

我正在尝试用tensorflow seq2seq代码打印一个tensor attns

我试过:

tf.Print(attns, [attns])
但它什么也没印出来

我试过了

sess = tf.Session() 
sess.run(attns) or attns.eval()
在这种情况下,它抛出:InvalidArgumentError:必须为占位符张量提供一个值

我也尝试过使用sess.run

sess = tf.get_default_session()
aa = sess.run(attns)
在本例中,sess对象为None。

tf.Print不是一条经典的操作指令,因为它们不是在基于图形的符号代码中执行的。取而代之的是计算图中的一个特定节点,该节点将在计算通过该节点时触发

这正是tf.Print所做的。它通过创建一个标识操作在任何其他节点周围创建一个包装器节点,该操作在触发时打印张量列表的值

在您的案例中,input_uu或attns的第一个参数是wrapped节点,在您的案例中,data或[attns]是要打印的张量列表

因此,您要做的是添加此行:

attns = tf.Print(attns, [attns])

在这里,attns在attns上分配了一个打印包装标识操作-因此,张量attns具有完全相同的行为,只是在计算时,它也会打印[attns]。

当我尝试此操作时,由于维度不匹配,它在seq2seq.pyL560处抛出值错误。我试着去掉tf.Print,效果很好。我正在加载一个经过训练的模型,以防万一。尽管它仍然没有打印任何东西。@p.j。您能更新您的评论以了解确切的错误吗?不是完整的轨迹,而是张量不匹配的名称,以及给定和预期的维度