class_docstr: Computes the relative squared error (RSE).
  
  .. math:: \text{RSE} = \frac{\sum_i^N(y_i - \hat{y_i})^2}{\sum_i^N(y_i - \overline{y})^2}
  
  Where :math:`y` is a tensor of target values with mean :math:`\overline{y}`, and
  :math:`\hat{y}` is a tensor of predictions.
  
  If num_outputs > 1, the returned value is averaged over all the outputs.
  
  As input to ``forward`` and ``update`` the metric accepts the following input:
  
  - ``preds`` (:class:`~torch.Tensor`): Predictions from model in float tensor with shape ``(N,)``
    or ``(N, M)`` (multioutput)
  - ``target`` (:class:`~torch.Tensor`): Ground truth values in float tensor with shape ``(N,)``
    or ``(N, M)`` (multioutput)
  
  As output of ``forward`` and ``compute`` the metric returns the following output:
  
  - ``rse`` (:class:`~torch.Tensor`): A tensor with the RSE score(s)
  
  Args:
      num_outputs: Number of outputs in multioutput setting
      squared: If True returns RSE value, if False returns RRSE value.
      kwargs: Additional keyword arguments, see :ref:`Metric kwargs` for more info.
  
  Example:
      >>> from torchmetrics.regression import RelativeSquaredError
      >>> target = torch.tensor([3, -0.5, 2, 7])
      >>> preds = torch.tensor([2.5, 0.0, 2, 8])
      >>> relative_squared_error = RelativeSquaredError()
      >>> relative_squared_error(preds, target)
      tensor(0.0514)
code: def __init__(
      self,
      num_outputs: int = 1,
      squared: bool = True,
      **kwargs: Any,
  ) -> None:
      super().__init__(**kwargs)
  
      self.num_outputs = num_outputs
  
      self.add_state(
          "sum_squared_error",
          default=torch.zeros(self.num_outputs),
          dist_reduce_fx="sum",
      )
      self.add_state(
          "sum_error",
          default=torch.zeros(self.num_outputs),
          dist_reduce_fx="sum",
      )
      self.add_state(
          "residual",
          default=torch.zeros(self.num_outputs),
          dist_reduce_fx="sum",
      )
      self.add_state("total", default=tensor(0), dist_reduce_fx="sum")
      self.squared = squared
  
file_path: torchmetrics/src/torchmetrics/regression/rse.py
imports: from typing import Any, Optional, Sequence, Union
  import torch
  from torch import Tensor, tensor
  from torchmetrics.functional.regression.r2 import _r2_score_update
  from torchmetrics.functional.regression.rse import _relative_squared_error_compute
  from torchmetrics.metric import Metric
  from torchmetrics.utilities.imports import _MATPLOTLIB_AVAILABLE
  from torchmetrics.utilities.plot import _AX_TYPE, _PLOT_OUT_TYPE
label_desc: Use image node_id 1 to create a new RelativeSquaredError object from inherited base classes: Metric with example: obj = RelativeSquaredError(num_outputs, squared)