ML Community Day is November 9! Join us for updates from TensorFlow, JAX, and more Learn more


Print the specified inputs.

Used in the notebooks

Used in the guide Used in the tutorials

A TensorFlow operator that prints the specified inputs to a desired output stream or logging level. The inputs may be dense or sparse Tensors, primitive python objects, data structures that contain tensors, and printable Python objects. Printed tensors will recursively show the first and last elements of each dimension to summarize.


Single-input usage:

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

(This prints "[0 1 2 ... 7 8 9]" to sys.stderr)

Multi-input usage:

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

(This prints "tensors: [0 1 2 ... 7 8 9] {2: [0 2 4 ... 14 16 18]}" to sys.stdout)

Changing the input separator:

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

(This prints "[0 1],[0 2]" to sys.stderr)

Usage in a tf.function:

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

range_tensor = f()

(This prints "[0 1 2 ... 7 8 9]" to sys.stderr)

Compatibility usage in TF 1.x graphs:

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

(This prints "tensors: [0 1 2 ... 7 8 9] {2: [0 2 4 ... 14 16 18]}" to sys.stdout)

*inputs Positional arguments that are the inputs to print. Inputs in the printed output will be separated by spaces. Inputs may be python primitives, tensors, data structures such as dicts and lists that may contain tensors (with the data structures possibly nested in arbitrary ways), and printable python objects.
output_stream The output stream, logging level, or file to print to. Defaults to sys.stderr, but sys.stdout,, tf.compat.v1.logging.warning, tf.compat.v1.logging.error,, absl.logging.warning and absl.logging.error are also supported. To print to a file, pass a string started with "file://" followed by the file path, e.g., "file:///tmp/foo.out".
summarize The first and last summarize elements within each dimension are recursively printed per Tensor. If None, then the first 3 and last 3 elements of each dimension are printed for each tensor. If set to -1, it will print all elements of every tensor.