计算 logits
和 labels
之间的 softmax 交叉熵。
用法
tf.nn.softmax_cross_entropy_with_logits(
labels, logits, axis=-1, name=None
)
参数
-
labels
沿类维度的每个向量都应保持有效的概率分布,例如对于标签形状为[batch_size, num_classes]
的情况,labels[i]
的每一行都必须是有效的概率分布。 -
logits
Per-label 激活,通常是线性输出。这些活化能被解释为非标准化的对数概率。 -
axis
类维度。默认为 -1,这是最后一个维度。 -
name
操作的名称(可选)。
返回
-
包含 softmax 交叉熵损失的
Tensor
。它的类型与logits
相同,其形状与labels
相同,只是它没有labels
的最后一个维度。
测量类别互斥(每个条目恰好属于一个类别)的离散分类任务中的概率误差。例如,每张 CIFAR-10 图像都带有一个且只有一个标签:图像可以是狗或卡车,但不能同时是两者。
注意:虽然这些类是互斥的,但它们的概率不一定是互斥的。所需要的只是labels
的每一行都是有效的概率分布。如果不是,则梯度的计算将不正确。
如果使用独占 labels
(其中一次只有一个类为真),请参阅 sparse_softmax_cross_entropy_with_logits
。
用法:
logits = [[4.0, 2.0, 1.0], [0.0, 5.0, 1.0]]
labels = [[1.0, 0.0, 0.0], [0.0, 0.8, 0.2]]
tf.nn.softmax_cross_entropy_with_logits(labels=labels, logits=logits)
<tf.Tensor:shape=(2,), dtype=float32,
numpy=array([0.16984604, 0.82474494], dtype=float32)>
警告:此操作需要未缩放的 logits,因为它在内部对 logits
执行 softmax
以提高效率。不要使用 softmax
的输出调用此操作,因为它会产生不正确的结果。
一个常见的用例是具有形状 [batch_size, num_classes]
的 logits 和标签,但支持更高的维度,axis
参数指定类维度。
logits
和 labels
必须具有相同的 dtype(float16
, float32
或 float64
)。
反向传播将同时发生在 logits
和 labels
中。要禁止反向传播到 labels
,请将标签张量通过 tf.stop_gradient
传递给此函数。
请注意,为避免混淆,只需要将命名参数传递给此函数。
相关用法
- Python tf.nn.softmax用法及代码示例
- Python tf.nn.scale_regularization_loss用法及代码示例
- Python tf.nn.sigmoid_cross_entropy_with_logits用法及代码示例
- Python tf.nn.space_to_depth用法及代码示例
- Python tf.nn.separable_conv2d用法及代码示例
- Python tf.nn.safe_embedding_lookup_sparse用法及代码示例
- Python tf.nn.sparse_softmax_cross_entropy_with_logits用法及代码示例
- Python tf.nn.sampled_softmax_loss用法及代码示例
- Python tf.nn.embedding_lookup_sparse用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.set_weights用法及代码示例
- Python tf.nn.dropout用法及代码示例
- Python tf.nn.gelu用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.set_weights用法及代码示例
- Python tf.nn.embedding_lookup用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.get_weights用法及代码示例
- Python tf.nn.local_response_normalization用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.add_loss用法及代码示例
- Python tf.nn.max_pool用法及代码示例
- Python tf.nn.RNNCellDropoutWrapper.set_weights用法及代码示例
- Python tf.nn.l2_loss用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.softmax_cross_entropy_with_logits。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。