TensorFlow函數(shù)教程:tf.nn.softmax_cross_entropy_with_logits_v2

2019-02-02 15:36 更新

tf.nn.softmax_cross_entropy_with_logits_v2函數(shù)

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

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

計(jì)算logits和labels之間的softmax交叉熵。

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

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

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

警告:此操作需要未縮放的日志,因?yàn)樗趦?nèi)部的logits執(zhí)行l(wèi)ogmax以提高效率。不要使用softmax的輸出調(diào)用此操作,因?yàn)樗鼤?huì)產(chǎn)生不正確的結(jié)果。

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

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

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

請(qǐng)注意,為避免混淆,需要僅將命名參數(shù)傳遞給此函數(shù)。

參數(shù):

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

返回:

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

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)