TensorFlow函数教程:tf.nn.softmax_cross_entropy_with_logits
tf.nn.softmax_cross_entropy_with_logits函数
tf.nn.softmax_cross_entropy_with_logits(
_sentinel=None,
labels=None,
logits=None,
dim=-1,
name=None
)
定义在:tensorflow/python/ops/nn_ops.py。
计算logits和labels之间的softmax交叉熵。(废弃)
这个函数已被弃用。它将在以后的版本中删除。更新说明:TensorFlow的未来主要版本将允许渐变在默认情况下流入backprop上的标签输入。
参考:tf.nn.softmax_cross_entropy_with_logits_v2。
测量离散分类任务中的概率误差,其中类是互斥的(每个条目恰好在一个类中)。 例如,每个CIFAR-10图像都标有一个且只有一个标签:图像可以是dog或truck,但不能同时是两者。
注意:虽然这些类是互斥的,但它们的概率不一定如此。所需要的只是每一行labels是有效的概率分布。如果不是,则梯度的计算将是不正确的。
如果使用专属labels
(其中一次只有一个类为true),请参阅sparse_softmax_cross_entropy_with_logits。
警告:此操作需要未缩放的日志,因为它在内部的logits执行logmax以提高效率。不要使用softmax的输出调用此操作,因为它会产生不正确的结果。
常见的用例是具有shape [batch_size,num_classes]的logits和labels,但支持更高的维度,dim参数指定类维度。
反向传播只会发生在logits中。要计算允许反向传播到logits和labels的交叉熵损失,请参阅tf.nn.softmax_cross_entropy_with_logits_v2。
请注意,为避免混淆,需要仅将命名参数传递给此函数。
参数:
- _sentinel:用于防止positional参数。内部的,不要使用。
- labels:沿着类维度的每个向量应该保持有效的概率分布,例如:对于标签shape为[batch_size, num_classes]的情况,labels[i]的每一行必须是有效的概率分布。
- logits:未缩放的日志概率。
- dim:类维度。默认为-1,这是最后一个维度。
- name:操作的名称(可选)。
返回:
一个Tensor,包含softmax交叉熵损失的。它的类型与logits相同,它的shape与labels是相同的,除了它没有labels的最后一个维度。