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.1, 0.8]])
labels = np.array([1, 0, 2])
这样的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参数决定了该函数可适合于每种样本属于多种类别的情况

本文详细解析了TensorFlow中两种交叉熵损失函数tf.nn.sparse_softmax_cross_entropy_with_logits和tf.nn.softmax_cross_entropy_with_logits的区别。前者适用于每种样本只属于一种类别的场景,输入label为非独热编码;后者则适用于每种样本可能属于多种类别的场景,输入label为独热编码。通过具体的代码示例,帮助读者理解这两种函数的应用场景。
1659

被折叠的 条评论
为什么被折叠?



