TensorFlow函數教程:tf.nn.softmax_cross_entropy_with_logits_v2

2019-02-02 15:36 更新

tf.nn.softmax_cross_entropy_with_logits_v2函數

tf.nn.softmax_cross_entropy_with_logits_v2(
    _sentinel=None,
    labels=None,
    logits=None,
    dim=-1,
    name=None
)

定義在:tensorflow/python/ops/nn_ops.py。

計算logits和labels之間的softmax交叉熵。

測量離散分類任務中的概率誤差,其中類是互斥的(每個條目恰好在一個類中)。例如,每個CIFAR-10圖像都標有一個且只有一個標簽:圖像可以是dog或truck,但不能同時是兩者。

注意:雖然這些類是互斥的,但它們的概率不一定如此。所需要的只是每一行l(wèi)abels是有效的概率分布。如果不是,則梯度的計算將是不正確的。

如果使用專屬labels(其中一次只有一個類為true),請參閱sparse_softmax_cross_entropy_with_logits。

警告:此操作需要未縮放的日志,因為它在內部的logits執(zhí)行l(wèi)ogmax以提高效率。不要使用softmax的輸出調用此操作,因為它會產生不正確的結果。

常見的用例是具有shape [batch_size,num_classes]的logits和labels,但支持更高的維度,dim參數指定類維度。

logits和labels必須具有相同的類型(可以是float16,float32,或float64)。

反向傳播將發(fā)生在logits和labels。為了禁止反向傳播labels,請先將標簽張量傳遞給tf.stop_gradient,然后再將其傳遞給此函數。

請注意,為避免混淆,需要僅將命名參數傳遞給此函數。

參數:

  • _sentinel:用于防止positional參數。內部的,不要使用。
  • labels:沿著類維度的每個向量應該保持有效的概率分布,例如:對于標簽的shape為[batch_size, num_classes]的情況,labels[i]的每一行必須是有效的概率分布。
  • logits:未縮放的日志概率。
  • dim:班級維度。默認為-1,這是最后一個維度。
  • name:操作的名稱(可選)。

返回:

一個Tensor,包含softmax交叉熵損失。它的類型與logits相同,它的shape與labels是相同的,除了它沒有l(wèi)abels的最后一個維度。 

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號