Print¶
- paddle.static. Print ( input, first_n=- 1, message=None, summarize=20, print_tensor_name=True, print_tensor_type=True, print_tensor_shape=True, print_tensor_layout=True, print_tensor_lod=True, print_phase='both' ) [源代码] ¶
创建一个打印操作,打印正在访问的 Tensor 内容。
封装传入的 Tensor,以便无论何时访问 Tensor,都会打印信息 message 和 Tensor 的当前值。
参数¶
input (Tensor) - 需要被封装打印层的 Tensor。
first_n (int,可选) - 打印 Tensor 的次数,大于该次数后则不再打印。默认为 -1。即不限定次数。
message (str,可选) - 打印 Tensor 信息前自定义的字符串类型消息,作为前缀打印。默认值为 None。
summarize (int,可选) - 打印 Tensor 中的元素数目,如果值为 -1 则打印所有元素。默认值为 20。
print_tensor_name (bool,可选) - 指明是否打印 Tensor 名称,默认为 True。
print_tensor_type (bool,可选) - 指明是否打印 Tensor 类型,默认为 True。
print_tensor_shape (bool,可选) - 指明是否打印 Tensor 维度信息,默认为 True。
print_tensor_layout (bool,可选) - 指明是否打印 Tensor 布局信息,默认为 True。
print_tensor_lod (bool,可选) - 指明是否打印 Tensor 的 LoD 信息,默认为 True。
print_phase (str,可选) - 指明打印的阶段,包括
forward
,backward
和both
,默认为both
。设置为forward
时,只打印 Tensor 的前向信息;设置为backward
时,只打印 Tensor 的梯度信息;设置为both
时,则同时打印 Tensor 的前向信息以及梯度信息。
返回¶
输出封装好打印层的新 Tensor。
注解
输入和输出是两个不同的 Tensor,在接下来的过程中,应该使用输出的新 Tensor 进行操作,而非输入的 Tensor,否则打印层将失去 backward 的信息。
代码示例¶
>>> import paddle
>>> paddle.enable_static()
>>> x = paddle.full(shape=[2, 3], fill_value=3, dtype='int64')
>>> out = paddle.static.Print(x, message="The content of input layer:")
>>> main_program = paddle.static.default_main_program()
>>> exe = paddle.static.Executor(place=paddle.CPUPlace())
>>> res = exe.run(main_program, fetch_list=[out])
Variable: fill_constant_1.tmp_0
- message: The content of input layer:
- lod: {}
- place: Place(cpu)
- shape: [2, 3]
- layout: NCHW
- dtype: int64
- data: [3 3 3 3 3 3]
>>> res
[array([[3, 3, 3],
[3, 3, 3]], dtype=int64)]