計算 logits
和 labels
之間的稀疏 softmax 交叉熵。
用法
tf.nn.sparse_softmax_cross_entropy_with_logits(
labels, logits, name=None
)
參數
-
labels
形狀為[d_0, d_1, ..., d_{r-1}]
的Tensor
(其中r
是labels
和結果的等級)和 dtypeint32
或int64
。labels
中的每個條目都必須是[0, num_classes)
中的索引。當此操作在 CPU 上運行時,其他值將引發異常,並為 GPU 上的相應損失和梯度行返回NaN
。 -
logits
形狀[d_0, d_1, ..., d_{r-1}, num_classes]
和 dtypefloat16
,float32
或float64
的未縮放對數概率。 -
name
操作的名稱(可選)。
返回
-
與
labels
具有相同形狀和與logits
相同類型的Tensor
,具有softmax 交叉熵損失。
拋出
-
ValueError
如果 logits 是標量(需要秩 >= 1)或者標簽的秩不等於 logits 的秩減一。
測量類別互斥(每個條目恰好屬於一個類別)的離散分類任務中的概率誤差。例如,每張 CIFAR-10 圖像都帶有一個且隻有一個標簽:圖像可以是狗或卡車,但不能同時是兩者。
注意:對於這個操作,給定標簽的概率被認為是排他的。也就是說,不允許使用軟類,並且labels
向量必須為logits
的每一行(每個小批量條目)的真實類提供單個特定索引。對於每個條目的概率分布的軟 softmax 分類,請參閱softmax_cross_entropy_with_logits_v2
。
警告:此操作需要未縮放的 logits,因為它在內部對 logits
執行 softmax
以提高效率。不要使用 softmax
的輸出調用此操作,因為它會產生不正確的結果。
一個常見的用例是具有形狀 [batch_size, num_classes]
的 logits 和形狀 [batch_size]
的標簽,但支持更高的維度,在這種情況下,假設 dim
-th 維度的大小為 num_classes
。 logits
必須具有 float16
, float32
或 float64
的數據類型,並且 labels
必須具有 int32
或 int64
的數據類型。
logits = tf.constant([[2., -5., .5, -.1],
[0., 0., 1.9, 1.4],
[-100., 100., -100., -100.]])
labels = tf.constant([0, 3, 1])
tf.nn.sparse_softmax_cross_entropy_with_logits(
labels=labels, logits=logits).numpy()
array([0.29750752, 1.1448325 , 0. ], dtype=float32)
為避免混淆,建議僅將命名參數傳遞給此函數。
相關用法
- Python tf.nn.space_to_depth用法及代碼示例
- Python tf.nn.scale_regularization_loss用法及代碼示例
- Python tf.nn.softmax用法及代碼示例
- Python tf.nn.sigmoid_cross_entropy_with_logits用法及代碼示例
- Python tf.nn.separable_conv2d用法及代碼示例
- Python tf.nn.safe_embedding_lookup_sparse用法及代碼示例
- Python tf.nn.sampled_softmax_loss用法及代碼示例
- Python tf.nn.softmax_cross_entropy_with_logits用法及代碼示例
- 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.sparse_softmax_cross_entropy_with_logits。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。