1. 程式人生 > >Tensorflow 兩個交叉熵損失函式的區別

Tensorflow 兩個交叉熵損失函式的區別

tf.nn.sparse_softmax_cross_entropy_with_logits

label:不含獨熱編碼,shape:[batch_size, ]
logits:原始預測概率分佈向量,shape:[batch_size, num_classes]

logits = np.array([[0.3, 0.4, 0.3], [0.5, 0.2, 0.3], [0.1, 0.8, 0.1]])
labels = np.array([1, 0, 1])

這樣的label引數決定了該函式只適合於每種樣本只屬於一種類別的情況


tf.nn.softmax_cross_entropy_with_logits

label:獨熱編碼,shape:[batch_size, num_classes]
logits:原始預測概率分佈向量,shape:[batch_size, num_classes]

logits = np.array([[0.3, 0.4, 0.3], [0.5, 0.2, 0.3], [0.1, 0.8, 0.1]])
labels = np.array([[0, 1, 0], [1, 0, 0], [0, 1, 0]])

獨熱編碼的label引數決定了該函式可適合於每種樣本屬於多種類別的情況