当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.print用法及代码示例


打印指定的输入。

用法

tf.print(
    *inputs, **kwargs
)

参数

  • *inputs 作为要打印的输入的位置参数。打印输出中的输入将用空格分隔。输入可能是 Python 原语、张量、数据结构(例如可能包含张量的字典和列表)(数据结构可能以任意方式嵌套),以及可打印的 Python 对象。
  • output_stream 要打印到的输出流、日志记录级别或文件。默认为 sys.stderr,但 sys.stdout、tf.compat.v1.logging.info、tf.compat.v1.logging.warning、tf.compat.v1.logging.error、absl.logging.info、absl.logging .warning 和 absl.logging.error 也受支持。要打印到文件,请传递以 "file://" 开头的字符串,后跟文件路径,例如 "file:///tmp/foo.out"。
  • summarize 每个维度中的第一个和最后一个 summarize 元素按张量递归打印。如果没有,则为每个张量打印每个维度的前 3 个和最后 3 个元素。如果设置为 -1,它将打印每个张量的所有元素。
  • sep 用于分隔输入的字符串。默认为" "。
  • end 附加在打印字符串末尾的结束字符。默认为换行符。
  • name 操作的名称(可选)。

返回

  • 即刻执行时没有。在图形跟踪期间,这将返回一个 TF 运算符,该运算符在指定的输出流或日志记录级别中打印指定的输入。除了 tf.compat.v1 图形和会话之外,此运算符将自动执行。

抛出

  • ValueError 如果指定了不受支持的输出流。

将指定的输入打印到所需的输出流或日志记录级别的 TensorFlow 运算符。输入可能是密集或稀疏张量、原始 Python 对象、包含张量的数据结构和可打印的 Python 对象。打印的张量将递归地显示要汇总的每个维度的第一个和最后一个元素。

例子:

Single-input 用法:

tensor = tf.range(10)
tf.print(tensor, output_stream=sys.stderr)

(这会将“[0 1 2 ... 7 8 9]”打印到 sys.stderr)

Multi-input 用法:

tensor = tf.range(10)
tf.print("tensors:", tensor, {2:tensor * 2}, output_stream=sys.stdout)

(这会将“张量:[0 1 2 ... 7 8 9] {2:[0 2 4 ... 14 16 18]}”打印到 sys.stdout)

更改输入分隔符:

tensor_a = tf.range(2)
tensor_b = tensor_a * 2
tf.print(tensor_a, tensor_b, output_stream=sys.stderr, sep=',')

(这会将“[0 1],[0 2]”打印到 sys.stderr)

tf.function 中的用法:

@tf.function
def f():
    tensor = tf.range(10)
    tf.print(tensor, output_stream=sys.stderr)
    return tensor

range_tensor = f()

(这会将“[0 1 2 ... 7 8 9]”打印到 sys.stderr)

TF 1.x 图表中的兼容性使用

tf.function 之外手动创建的图形中,此方法返回创建的打印数据的 TF 运算符。为确保算子运行,用户需要将生成的操作传递给 tf.compat.v1.Session 的 run 方法,或者通过指定 with tf.compat.v1.control_dependencies([print_op]) 将操作用作执行操作的控制依赖项。

tf.compat.v1.disable_v2_behavior()  # for TF1 compatibility only

  sess = tf.compat.v1.Session()
  with sess.as_default():
    tensor = tf.range(10)
    print_op = tf.print("tensors:", tensor, {2:tensor * 2},
                        output_stream=sys.stdout)
    with tf.control_dependencies([print_op]):
      tripled_tensor = tensor * 3

    sess.run(tripled_tensor)

(这会将“张量:[0 1 2 ... 7 8 9] {2:[0 2 4 ... 14 16 18]}”打印到 sys.stdout)

注意:在 Jupyter 笔记本和 colabs 中,tf.print 打印到笔记本单元格输出。它不会写入笔记本内核的控制台日志。

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.print。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。