當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。