# tf.compat.v1.losses.compute_weighted_loss

<br />

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

Computes the weighted loss.

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

<br />

<br />

<br />

| ## Args ||
|---|---|
| `losses` | `Tensor` of shape `[batch_size, d1, ... dN]`. |
| `weights` | Optional `Tensor` whose rank is either 0, or the same rank as `losses`, and must be broadcastable to `losses` (i.e., all dimensions must be either `1`, or the same as the corresponding `losses` dimension). |
| `scope` | the scope for the operations performed in computing the loss. |
| `loss_collection` | the loss will be added to these collections. |
| `reduction` | Type of reduction to apply to loss. |

<br />

<br />

<br />

<br />

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

<br />

<br />

<br />

<br />

| ## Raises ||
|---|---|
| `ValueError` | If `weights` is `None` or the shape is not compatible with `losses`, or if the number of dimensions (rank) of either `losses` or `weights` is missing. |

<br />

<br />

<br />

<br />

| ## Note ||
|---|---|
| When calculating the gradient of a weighted loss contributions from both `losses` and `weights` are considered. If your `weights` depend on some model parameters but you do not want this to affect the loss gradient, you need to apply [`tf.stop_gradient`](https://www.tensorflow.org/versions/r2.14/api_docs/python/tf/stop_gradient) to `weights` before passing them to `compute_weighted_loss`. ||

<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.14/api_docs/python/tf/keras/Model).

<br />

<br />