打印tensorflow变量seq2seq

时间:2017-01-18 18:34:54

标签: tensorflow

我正在尝试在tensorflow seq2seq代码中打印张量attns。 Seq2Seq.py

我试过了:

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。

1 个答案:

答案 0 :(得分:1)

tf.Print不是“经典”操作指令,因为它们不是在符号的基于图形的代码中执行的。需要的是计算图中的特定节点,只要计算“通过”该节点,就会触发该节点。

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

this print function的第一个参数,input_(或您的attns)是包装节点,data(或[attns]在您的情况下)是要打印的张量列表。

你想要做的是添加这一行:

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

这里,在attns上为attns分配了一个打印包装器标识操作 - 因此张量attns具有完全相同的行为,除了在计算它时,它还将打印{ {1}}。