交叉熵损失函数是用来度量两个概率分布间的差异性,有关交叉熵损失函数的原理在这篇博客中讲解得很好。而本文主要对以下几种tensorflow中常用的交叉熵损失函数进行比较和总结:
- tf.losses.sigmoid_cross_entropy
- tf.nn.sigmoid_cross_entropy_with_logits
- tf.losses.softmax_cross_entropy
- tf.nn.softmax_cross_entropy_with_logits_v2
- tf.losses.sparse_softmax_cross_entropy
1. tf.losses.sigmoid_cross_entropy
import tensorflow as tf
batch_size = 4
num_classes = 2
'''
tf.losses.sigmoid_cross_entropy适用于二分类问题,是对logits先进行sigmoid再求交叉熵
args:
logits:不经过sigmoid处理的神经网络输出,是分类器对每个类别打的分数,shape:[batch_size, num_classes]
labels:真实标签值,shape:[batch_size, num_classes]
'''
logits = tf.constant([[9., 2.],
[1, 7.],
[5., 4.],
[2., 8.]])
labels = tf.constant([0, 1, 0, 1])
one_hot_labels = tf.one_hot(labels, depth=num_classes, dtype=tf.int32)
loss = tf.losses.sigmoid_cr

本文详细对比了TensorFlow中五种常用的交叉熵损失函数,包括sigmoid_cross_entropy、sigmoid_cross_entropy_with_logits、softmax_cross_entropy、softmax_cross_entropy_with_logits_v2和sparse_softmax_cross_entropy,分别适用于二分类和多分类问题,并提供了具体的代码示例。
最低0.47元/天 解锁文章
664

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



