打印tensorflow变量seq2seq
我正在尝试用tensorflow seq2seq代码打印一个tensor attns 我试过:打印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
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。您能更新您的评论以了解确切的错误吗?不是完整的轨迹,而是张量不匹配的名称,以及给定和预期的维度