maxframe.tensor.logaddexp2#

maxframe.tensor.logaddexp2(x1, x2, out=None, where=None, **kwargs)[源代码]#

输入值以2为底的指数和的对数。

计算 log2(2**x1 + 2**x2)。在机器学习中,当事件的计算概率小到超出正常浮点数范围时,该函数非常有用。在这种情况下,可以使用计算概率的以2为底的对数。该函数允许以这种方式存储的概率相加。

参数:
  • x1 (array_like) -- 输入值。

  • x2 (array_like) -- 输入值。

  • out (Tensor, None, or tuple of Tensor and None, optional) -- 用于存储结果的位置。如果提供了此参数,则其形状必须能广播到输入值的形状。如果未提供或为 None,则返回一个新分配的 tensor。元组(只能作为关键字参数)的长度必须等于输出数量。

  • where (array_like, optional) -- 为 True 表示在该位置计算 ufunc,为 False 表示保留输出中的值不变。

  • **kwargs

返回:

result -- 2**x1 + 2**x2 的以2为底的对数。

返回类型:

Tensor

参见

logaddexp

输入值的指数和的对数。

示例

>>> import maxframe.tensor as mt
>>> prob1 = mt.log2(1e-50)
>>> prob2 = mt.log2(2.5e-50)
>>> prob12 = mt.logaddexp2(prob1, prob2)
>>> prob1.execute(), prob2.execute(), prob12.execute()
(-166.09640474436813, -164.77447664948076, -164.28904982231052)
>>> (2**prob12).execute()
3.4999999999999914e-50