check_numerics

paddle.amp.debugging. check_numerics ( tensor, op_type, var_name, debug_mode=paddle.amp.debugging.DebugMode.CHECK_NAN_INF_AND_ABORT ) [源代码]

用来调试一个 Tensor ,计算并返回这个 Tensor 数值中异常值(NaN、Inf) 和零元素的数量。

参数

  • tensor (Tensor) – 需要检查的目标 Tensor 。

  • op_type (str) – 产生目标 Tensor 的 OP 或 API 。

  • var_name (str) – 目标 Tensor 的名字。

  • debug_mode (paddle.amp.debugging.DebugMode, 可选) - 要使用的调试类型。默认值为 paddle.amp.debugging.DebugMode.CHECK_NAN_INF_AND_ABORT

返回

  • stats(Tensor),保存目标 Tensor 统计信息的 Tensor ,形状为 [3],依次存放目标 Tensor 中 NaN、Inf 和零元素的数量。数据类型为 int64。

  • values(Tensor),保存目标 Tensor 的最大值、最小值和所有元素的均值,形状为 [3],数据类型为 float 。

代码示例

>>> import paddle

>>> checker_config = paddle.amp.debugging.TensorCheckerConfig(
...     enable=True, debug_mode=paddle.amp.debugging.DebugMode.CHECK_NAN_INF)

>>> x = paddle.to_tensor([1, 0, 3], place=paddle.CPUPlace(), dtype='float32')
>>> y = paddle.to_tensor([0.2, 0, 0.5], place=paddle.CPUPlace(), dtype='float32')
>>> res = paddle.pow(x, y)
>>> paddle.amp.debugging.check_numerics(res, "pow", "res")