0
我想了解tf.nn.sparse_softmax_cross_entropy_with_logits
的工作原理。tf.nn.sparse_softmax_cross_entropy_with_logits - 在tensorflow中沒有一個熱編碼的標籤
描述說:
A common use case is to have logits of shape [batch_size, num_classes]
and labels of shape [batch_size]. But higher dimensions are supported.
所以它表明,我們可以用原始的形式送入標籤例如[1,2,3]
。
現在,因爲所有的計算都每批做我認爲可能有如下優點:
在任何情況下,我們假設一批相等的兩個的大小。
案例1(一個批次): 羅吉特:
0.4 0.2 0.4
0.3 0.3 0.4
correspoding標籤:
2
3
我猜標籤可能被編碼爲
[1 0 0]
[0 1 0]
案例2(與另一批): logit:
0.4 0.2 0.4
0.3 0.3 0.4
correspoding標籤:
1
2
我猜標籤可能被編碼爲(我看不出有什麼阻止了我們這個編碼,除非tensorflow跟蹤它之前編碼)
[1 0 0]
[0 1 0]
所以我們有兩個不同的編碼。假設tensorflow保持批次之間的編碼一致性是否安全?
非常感謝!所以我的標籤必須具有某種格式?如果我的標籤是34,45,133,並且我們只有三個類別 – user1700890
@ user1700890是的,您的標籤必須是介於0到number_of_classes - 1之間的整數。如果您的標籤是34,45和133,則必須將它們編碼爲0 ,1和2自己。 – BlueSun