计算 logits
和 labels
之间的稀疏 softmax 交叉熵。
用法
tf.nn.sparse_softmax_cross_entropy_with_logits(
labels, logits, name=None
)
参数
-
labels
形状为[d_0, d_1, ..., d_{r-1}]
的Tensor
(其中r
是labels
和结果的等级)和 dtypeint32
或int64
。labels
中的每个条目都必须是[0, num_classes)
中的索引。当此操作在 CPU 上运行时,其他值将引发异常,并为 GPU 上的相应损失和梯度行返回NaN
。 -
logits
形状[d_0, d_1, ..., d_{r-1}, num_classes]
和 dtypefloat16
,float32
或float64
的未缩放对数概率。 -
name
操作的名称(可选)。
返回
-
与
labels
具有相同形状和与logits
相同类型的Tensor
,具有softmax 交叉熵损失。
抛出
-
ValueError
如果 logits 是标量(需要秩 >= 1)或者标签的秩不等于 logits 的秩减一。
测量类别互斥(每个条目恰好属于一个类别)的离散分类任务中的概率误差。例如,每张 CIFAR-10 图像都带有一个且只有一个标签:图像可以是狗或卡车,但不能同时是两者。
注意:对于这个操作,给定标签的概率被认为是排他的。也就是说,不允许使用软类,并且labels
向量必须为logits
的每一行(每个小批量条目)的真实类提供单个特定索引。对于每个条目的概率分布的软 softmax 分类,请参阅softmax_cross_entropy_with_logits_v2
。
警告:此操作需要未缩放的 logits,因为它在内部对 logits
执行 softmax
以提高效率。不要使用 softmax
的输出调用此操作,因为它会产生不正确的结果。
一个常见的用例是具有形状 [batch_size, num_classes]
的 logits 和形状 [batch_size]
的标签,但支持更高的维度,在这种情况下,假设 dim
-th 维度的大小为 num_classes
。 logits
必须具有 float16
, float32
或 float64
的数据类型,并且 labels
必须具有 int32
或 int64
的数据类型。
logits = tf.constant([[2., -5., .5, -.1],
[0., 0., 1.9, 1.4],
[-100., 100., -100., -100.]])
labels = tf.constant([0, 3, 1])
tf.nn.sparse_softmax_cross_entropy_with_logits(
labels=labels, logits=logits).numpy()
array([0.29750752, 1.1448325 , 0. ], dtype=float32)
为避免混淆,建议仅将命名参数传递给此函数。
相关用法
- Python tf.nn.space_to_depth用法及代码示例
- Python tf.nn.scale_regularization_loss用法及代码示例
- Python tf.nn.softmax用法及代码示例
- Python tf.nn.sigmoid_cross_entropy_with_logits用法及代码示例
- Python tf.nn.separable_conv2d用法及代码示例
- Python tf.nn.safe_embedding_lookup_sparse用法及代码示例
- Python tf.nn.sampled_softmax_loss用法及代码示例
- Python tf.nn.softmax_cross_entropy_with_logits用法及代码示例
- 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.sparse_softmax_cross_entropy_with_logits。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。