Deep learning和tensorflow学习记录(二十一):tf.losses.sparse_softmax_cross_entropy

tf.losses.sparse_softmax_cross_entropy(
    labels,
    logits,
    weights=1.0,
    scope=None,
    loss_collection=tf.GraphKeys.LOSSES,
    reduction=Reduction.SUM_BY_NONZERO_WEIGHTS

)

定义于:tensorflow/python/ops/losses/losses_impl.py。

Cross-entropy loss使用tf.nn.sparse_softmax_cross_entropy_with_logits。

weights作为loss的系数。如果是标量,那么loss直接按给定值缩放。如果weights是形状为[batch_size]的张量,则loss weights适用于每个相应的样本。

参数:

labels:Tensor,形状为[d_0, d_1, ..., d_{r-1}](r是labels和result的秩 ),类型是 int32或int64。每个labels 的元素必须是在[0, num_classes)的索引。当此op在CPU上运行时,其他值将引发异常,GPU上则返回NaN,相应的loss 和梯度行。

logits:形状[d_0, d_1, ..., d_{r-1}, num_classes]和dtype float32或的非标定日志概率 float64。

weights:loss的系数。这必须是标量或可广播给 labels(即相同的秩,每个维度是1或相同)。

scope:计算loss时执行的操作范围。

loss_collection:将添加loss的集合。

reduction:应用于loss的reduction 类型。

返回:
Weighted loss Tensor,与logits具有相同类型。如果reduction是 NONE,它的形状与labels相同; 否则,它是标量。

猜你喜欢

转载自blog.csdn.net/heiheiya/article/details/81033711