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


Python tf.math.reduce_logsumexp用法及代碼示例

計算 log(sum(exp(跨張量維度的元素)))。

用法

tf.math.reduce_logsumexp(
    input_tensor, axis=None, keepdims=False, name=None
)

參數

  • input_tensor 要減少的張量。應該是數字類型。
  • axis 要減小的尺寸。如果None(默認),減少所有維度。必須在 [-rank(input_tensor), rank(input_tensor)) 範圍內。
  • keepdims 如果為真,則保留長度為 1 的縮減維度。
  • name 操作的名稱(可選)。

返回

  • 減少的張量。

沿 axis 中給定的尺寸減少 input_tensor 。除非 keepdims 為真,否則對於 axis 中的每個條目,張量的秩都會減少 1,這必須是唯一的。如果 keepdims 為真,則保留縮減後的維度,長度為 1。

如果axis 沒有條目,則減少所有維度,並返回具有單個元素的張量。

這個函數比 log(sum(exp(input))) 在數值上更穩定。它避免了由於取大輸入的 exp 導致的溢出和取小輸入的 log 導致的下溢。

例如:

x = tf.constant([[0., 0., 0.], [0., 0., 0.]])
tf.reduce_logsumexp(x)  # log(6)
tf.reduce_logsumexp(x, 0)  # [log(2), log(2), log(2)]
tf.reduce_logsumexp(x, 1)  # [log(3), log(3)]
tf.reduce_logsumexp(x, 1, keepdims=True)  # [[log(3)], [log(3)]]
tf.reduce_logsumexp(x, [0, 1])  # log(6)

相關用法


注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.math.reduce_logsumexp。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。