如何在tensorflow中打印完整(不截断)张量?

Ple*_*zos 5 numpy tensorflow

每当我尝试打印时,我总会得到截断的结果

import tensorflow as tf
import numpy as np

np.set_printoptions(threshold=np.nan)

tensor = tf.constant(np.ones(999))

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

sess = tf.Session()

sess.run(tensor)
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我遵循了一个指南,我发现打印完全值张量到控制台或写入张量流文件

但输出很简单

...\core\kernels\logging_ops.cc:79] [1 1 1 ...]

我想看到完整的张量,谢谢.

Los*_*fra 11

您可以在 TensorFlow 2.x 中执行以下操作:

import tensorflow as tf

tensor = tf.constant(np.ones(999))
tf.print(tensor, summarize=-1)
Run Code Online (Sandbox Code Playgroud)

来自 TensorFlow 文档 -> 总结:每个维度中的第一个和最后一个总结元素是按张量递归打印的。如果设置为 -1,它将打印每个张量的所有元素。

https://www.tensorflow.org/api_docs/python/tf/print


xdu*_*ch0 10

通过检查Tensorflow API可以轻松解决这个问题tf.Print.通过summarize=n这里n是你想要显示的元素的数量.

  • 要打印整个张量,只需将参数设置为张量的大小,这可以使用 tf.size 完成。https://www.tensorflow.org/api_docs/python/tf/size (2认同)
  • 此后已弃用 tf.print(小写 p) https://www.tensorflow.org/api_docs/python/tf/print (2认同)
  • 您现在可以使用`summarize = -1`来打印整个张量,而不是`tf.size`:https://www.tensorflow.org/api_docs/python/tf/print#args (2认同)