Tensorflow中的交叉熵(Cross Entropy)
阿新 • • 發佈:2019-01-09
Tensorflow中的交叉熵(Cross Entropy)
Cross Entropy (Sigmoid)
適用於二分類,輸入函式的logits
和labels
應當是一維的。如果輸入One-Hot過的logits,會被當做多個一維分別計算。注意不要將已經通過sigmoid
計算得到的數值輸入函式,那樣會得到錯誤的結果。
# 3 samples
preds = [5., 5., 5.]
labels = [1., 0., -1.]
loss = tf.nn.sigmoid_cross_entropy_with_logits(logits=preds, labels=labels)
Cross Entropy (Softmax)
適用於多分類,softmax_cross_entropy_with_logits_v2
接收的logits
和labels
至少是二維的,sparse_softmax_cross_entropy_with_logits
接收的logits
至少是二維的,但labels
不是One-Hot的,而是類別的下標,例如
這樣的label就是2(從0開始)。注意不要將已經通過softmax
計算得到的數值輸入函式,那樣會得到錯誤的結果。
# 4 samples
preds = [[10., -10.], [10., -10.], [10., -10.], [10.,-10.]]
labels = [[1., 0.], [1., -1.], [0.,