nan_to_num

paddle. nan_to_num ( x, nan=0.0, posinf=None, neginf=None, name=None ) [源代码]

替换 x 中的 NaN、+inf、-inf 为指定值。

参数

  • x (Tensor) - 输入变量,类型为 Tensor, 支持 float32、float64 数据类型。

  • nan (float,可选) - NaN 的替换值,默认为 0。

  • posinf (float,可选) - +inf 的替换值,默认为 None,表示使用输入 Tensor 的数据类型所能表示的最大值作为 +inf 的替换值。

  • neginf (float,可选) - -inf 的替换值,默认为 None,表示使用输入 Tensor 的数据类型所能表示的最小值作为 -inf 的替换值。

  • name (str,可选) - 具体用法请参见 Name ,一般无需设置,默认值为 None。

返回

  • Tensor (Tensor),将输入 Tensor 中的 NaN、+inf、-inf 替换后的结果。

代码示例

>>> import paddle

>>> x = paddle.to_tensor([float('nan'), 0.3, float('+inf'), float('-inf')], dtype='float32')
>>> out1 = paddle.nan_to_num(x)
>>> out1
Tensor(shape=[4], dtype=float32, place=Place(cpu), stop_gradient=True,
[ 0.                                      ,
  0.30000001                              ,
  340282346638528859811704183484516925440.,
 -340282346638528859811704183484516925440.])
>>> out2 = paddle.nan_to_num(x, nan=1)
>>> out2
Tensor(shape=[4], dtype=float32, place=Place(cpu), stop_gradient=True,
[ 1.                                      ,
  0.30000001                              ,
  340282346638528859811704183484516925440.,
 -340282346638528859811704183484516925440.])
>>> out3 = paddle.nan_to_num(x, posinf=5)
>>> out3
Tensor(shape=[4], dtype=float32, place=Place(cpu), stop_gradient=True,
[ 0.                                      ,
  0.30000001                              ,
  5.                                      ,
 -340282346638528859811704183484516925440.])
>>> out4 = paddle.nan_to_num(x, nan=10, neginf=-99)
>>> out4
Tensor(shape=[4], dtype=float32, place=Place(cpu), stop_gradient=True,
[ 10.                                    ,
  0.30000001                             ,
 340282346638528859811704183484516925440.,
 -99.                                    ])