megengine.functional.log1p

log1p(x)[源代码]

Element-wise \(\log(1 + x)\) 方法.

计算 :math:`log(1 + x)`的近似值:

\[y_i = \log(1 + x_i)\]

其中 log 指的是自然 (base \(e\)) 对数, 为输入tensor \(x\) 的每个元素 \(x_i\) 计算出结果。

函数的作用域 [-1, +infinity] 和陪域 [-infinity, +infinity].

参数

x – 输入 tensor。应该具有 float 数据类型。

返回

一个承接输入张量 \(x\) 的每一个元素映射值的张量。返回张量必须是浮点数据类型(具体参考 类型提升规则 ).

注解

对于较小的输入比 \(\log(1+x)\) 更加精准。 参考实现见: FDLIBM, 或者 IEEE 754-2019 标准的数学库。

特殊的案例

对于浮点数的操作,

  • \(x_i\)NaN,则结果为 NaN

  • \(x_i\) 小于 -1,则结果为 NaN

  • 如果 \(x_i\)-1 ,那么结果是 -infinity

  • 如果 \(x_i\)-0 ,那么结果是 -0

  • 如果 \(x_i\)+0 ,那么结果是 +0

  • \(x_i\)+infinity,则结果为 +infinity

实际案例

>>> F.log(1e-10 + 1)
Tensor(0.0, device=xpux:0)
>>> F.log1p(1e-10)
Tensor(1e-10, device=xpux:0)