計算 logits
和 labels
之間的 softmax 交叉熵。
用法
tf.nn.softmax_cross_entropy_with_logits(
labels, logits, axis=-1, name=None
)
參數
-
labels
沿類維度的每個向量都應保持有效的概率分布,例如對於標簽形狀為[batch_size, num_classes]
的情況,labels[i]
的每一行都必須是有效的概率分布。 -
logits
Per-label 激活,通常是線性輸出。這些活化能被解釋為非標準化的對數概率。 -
axis
類維度。默認為 -1,這是最後一個維度。 -
name
操作的名稱(可選)。
返回
-
包含 softmax 交叉熵損失的
Tensor
。它的類型與logits
相同,其形狀與labels
相同,隻是它沒有labels
的最後一個維度。
測量類別互斥(每個條目恰好屬於一個類別)的離散分類任務中的概率誤差。例如,每張 CIFAR-10 圖像都帶有一個且隻有一個標簽:圖像可以是狗或卡車,但不能同時是兩者。
注意:雖然這些類是互斥的,但它們的概率不一定是互斥的。所需要的隻是labels
的每一行都是有效的概率分布。如果不是,則梯度的計算將不正確。
如果使用獨占 labels
(其中一次隻有一個類為真),請參閱 sparse_softmax_cross_entropy_with_logits
。
用法:
logits = [[4.0, 2.0, 1.0], [0.0, 5.0, 1.0]]
labels = [[1.0, 0.0, 0.0], [0.0, 0.8, 0.2]]
tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)
<tf.Tensor:shape=(2,), dtype=float32,
numpy=array([0.16984604, 0.82474494], dtype=float32)>
警告:此操作需要未縮放的 logits,因為它在內部對 logits
執行 softmax
以提高效率。不要使用 softmax
的輸出調用此操作,因為它會產生不正確的結果。
一個常見的用例是具有形狀 [batch_size, num_classes]
的 logits 和標簽,但支持更高的維度,axis
參數指定類維度。
logits
和 labels
必須具有相同的 dtype(float16
, float32
或 float64
)。
反向傳播將同時發生在 logits
和 labels
中。要禁止反向傳播到 labels
,請將標簽張量通過 tf.stop_gradient
傳遞給此函數。
請注意,為避免混淆,隻需要將命名參數傳遞給此函數。
相關用法
- Python tf.nn.softmax用法及代碼示例
- Python tf.nn.scale_regularization_loss用法及代碼示例
- Python tf.nn.sigmoid_cross_entropy_with_logits用法及代碼示例
- Python tf.nn.space_to_depth用法及代碼示例
- Python tf.nn.separable_conv2d用法及代碼示例
- Python tf.nn.safe_embedding_lookup_sparse用法及代碼示例
- Python tf.nn.sparse_softmax_cross_entropy_with_logits用法及代碼示例
- Python tf.nn.sampled_softmax_loss用法及代碼示例
- Python tf.nn.embedding_lookup_sparse用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.set_weights用法及代碼示例
- Python tf.nn.dropout用法及代碼示例
- Python tf.nn.gelu用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.set_weights用法及代碼示例
- Python tf.nn.embedding_lookup用法及代碼示例
- Python tf.nn.RNNCellDeviceWrapper.get_weights用法及代碼示例
- Python tf.nn.local_response_normalization用法及代碼示例
- Python tf.nn.RNNCellResidualWrapper.add_loss用法及代碼示例
- Python tf.nn.max_pool用法及代碼示例
- Python tf.nn.RNNCellDropoutWrapper.set_weights用法及代碼示例
- Python tf.nn.l2_loss用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.nn.softmax_cross_entropy_with_logits。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。