当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.nn.log_poisson_loss用法及代码示例


在给定 log_input 的情况下计算对数泊松损失。

用法

tf.nn.log_poisson_loss(
    targets, log_input, compute_full_loss=False, name=None
)

参数

  • targets log_input 类型和形状相同的 Tensor
  • log_input Tensor 类型为 float32float64
  • compute_full_loss 是否计算全部损失。如果为 false,则删除常数项以进行更有效的优化。
  • name 操作的名称(可选)。

返回

  • log_input 形状相同的 Tensor,具有组件逻辑损失。

抛出

  • ValueError 如果log_inputtargets 的形状不同。

在假设目标具有泊松分布的情况下,给出预测和目标之间的log-likelihood 损失。警告:默认情况下,这不是确切的损失,而是损失减去常数项 [log(z!)]。这对优化没有影响,但在相对损失比较中效果不佳。要计算对数阶乘项的近似值,请指定 compute_full_loss=True 以启用斯特林近似。

为简洁起见,让 c = log(x) = log_input , z = targets 。对数泊松损失为

-log(exp(-x) * (x^z) / z!)
= -log(exp(-x) * (x^z)) + log(z!)
~ -log(exp(-x)) - log(x^z) [+ z * log(z) - z + 0.5 * log(2 * pi * z)]
    [ Note the second term is the Stirling's Approximation for log(z!).
      It is invariant to x and does not affect optimization, though
      important for correct relative loss comparisons. It is only
      computed when compute_full_loss == True. ]
= x - z * log(x) [+ z * log(z) - z + 0.5 * log(2 * pi * z)]
= exp(c) - z * c [+ z * log(z) - z + 0.5 * log(2 * pi * z)]

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.log_poisson_loss。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。