# tf.compat.v1.losses.sparse_softmax_cross_entropy

<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/tensorflow/blob/v2.13.1/tensorflow/python/ops/losses/losses_impl.py#L1046-L1102) |

Cross-entropy loss using [`tf.nn.sparse_softmax_cross_entropy_with_logits`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/nn/sparse_softmax_cross_entropy_with_logits).

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

`weights` acts as a coefficient for the loss. If a scalar is provided,
then the loss is simply scaled by the given value. If `weights` is a
tensor of shape `[batch_size]`, then the loss weights apply to each
corresponding sample.

<br />

<br />

<br />

| ## Args ||
|---|---|
| `labels` | `Tensor` of shape `[d_0, d_1, ..., d_{r-1}]` (where `r` is rank of `labels` and result) and dtype `int32` or `int64`. Each entry in `labels` must be an index in `[0, num_classes)`. Other values will raise an exception when this op is run on CPU, and return `NaN` for corresponding loss and gradient rows on GPU. |
| `logits` | Unscaled log probabilities of shape `[d_0, d_1, ..., d_{r-1}, num_classes]` and dtype `float16`, `float32` or `float64`. |
| `weights` | Coefficients for the loss. This must be scalar or broadcastable to `labels` (i.e. same rank and each dimension is either 1 or the same). |
| `scope` | the scope for the operations performed in computing the loss. |
| `loss_collection` | collection to which the loss will be added. |
| `reduction` | Type of reduction to apply to loss. |

<br />

<br />

<br />

<br />

| ## Returns ||
|---|---|
| Weighted loss `Tensor` of the same type as `logits`. If `reduction` is `NONE`, this has the same shape as `labels`; otherwise, it is scalar. ||

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | If the shapes of `logits`, `labels`, and `weights` are incompatible, or if any of them are None. |

<br />

<br />

## eager compatibility

<br />

The `loss_collection` argument is ignored when executing eagerly. Consider
holding on to the return value or collecting losses via a [`tf.keras.Model`](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/keras/Model).

<br />

<br />