天天看點

TF2.0—tf.keras.losses.BinaryCrossentropy

文章目錄

      • BinaryCrossentropy
      • 執行個體

BinaryCrossentropy

tf.keras.losses.BinaryCrossentropy(
    from_logits=False, label_smoothing=0, reduction=losses_utils.ReductionV2.AUTO,
    name='binary_crossentropy'
)
           

描述

計算真實标簽和預測标簽之間的交叉熵損失

當隻有兩個标簽類(假設為0和1)時,使用這個交叉熵損失。對于每個示例,每個預測都應該有一個浮點值

參數

from_logits

是否将y_pred解釋為logit值的張量。

預設情況下,我們假設y_pred包含機率(即[0,1]中的值)

label_smoothing

浮點數在[0,1]中。

如果為0,則不會進行平滑處理。

當> 0時,我們将計算預測标簽與真實标簽的平滑版本之間的損失,其中平滑會将标簽向0.5壓縮。

label_smoothing的較大值對應于較重的平滑度

reduction

(可選)tf.keras.losses.reduction的類型,适用于損失。預設值為自動。

AUTO表示減少選項将由使用情況決定。

name

(可選)op的名稱。預設為’ binary_crossenropy ’

調用的執行個體對象的參數

y_true : 真實值
y_pred : 預測值

sample_weight

可選的sample_weight用作損失的系數。

如果提供了标量,則損耗将簡單地按給定值縮放。

如果sample_weight是大小[batch_size]的張量,則該批次的每個樣本的總損失将由sample_weight向量中的相應元素重新縮放。

如果sample_weight的形狀為[batch_size,d0,… dN-1](或可以廣播為該形狀),則y_pred的每個損失元素将通過sample_weight的相應值進行縮放。

執行個體

獨立使用

y_true = [[0., 1.], [0., 0.]]
y_pred = [[0.6, 0.4], [0.4, 0.6]]
# Using 'auto'/'sum_over_batch_size' reduction type.
bce = tf.keras.losses.BinaryCrossentropy()
bce(y_true, y_pred).numpy()
0.815

# Calling with 'sample_weight'.
bce(y_true, y_pred, sample_weight=[1, 0]).numpy()
0.458
           
# Using 'sum' reduction type.
 bce = tf.keras.losses.BinaryCrossentropy(
     reduction=tf.keras.losses.Reduction.SUM)
 bce(y_true, y_pred).numpy()
 1.630
           
# Using 'none' reduction type.
bce = tf.keras.losses.BinaryCrossentropy(
    reduction=tf.keras.losses.Reduction.NONE)
bce(y_true, y_pred).numpy()

           

如果對您有幫助,麻煩點贊關注,這真的對我很重要!!!如果需要互關,請評論留言!

TF2.0—tf.keras.losses.BinaryCrossentropy

繼續閱讀