當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。