def METHOD_NAME(
    sum_squared_obs: Tensor,
    sum_obs: Tensor,
    rss: Tensor,
    n_obs: Union[int, Tensor],
    adjusted: int = 0,
    multioutput: str = "uniform_average",
) -> Tensor:
    """Compute R2 score.
    Args:
        sum_squared_obs: Sum of square of all observations
        sum_obs: Sum of all observations
        rss: Residual sum of squares
        n_obs: Number of predictions or observations
        adjusted: number of independent regressors for calculating adjusted r2 score.
        multioutput: Defines aggregation in the case of multiple output scores. Can be one of the following strings:
            * `'raw_values'` returns full set of scores
            * `'uniform_average'` scores are uniformly averaged
            * `'variance_weighted'` scores are weighted by their individual variances
    Example:
        >>> target = torch.tensor([[0.5, 1], [-1, 1], [7, -6]])
        >>> preds = torch.tensor([[0, 2], [-1, 2], [8, -5]])
        >>> sum_squared_obs, sum_obs, rss, n_obs = _r2_score_update(preds, target)
        >>> _r2_score_compute(sum_squared_obs, sum_obs, rss, n_obs, multioutput="raw_values")
        tensor([0.9654, 0.9082])
    """
    if n_obs < 2:
        raise ValueError("Needs at least two samples to calculate r2 score.")
    mean_obs = sum_obs / n_obs
    tss = sum_squared_obs - sum_obs * mean_obs
    # Account for near constant targets
    cond_rss = ~torch.isclose(rss, torch.zeros_like(rss), atol=1e-4)
    cond_tss = ~torch.isclose(tss, torch.zeros_like(tss), atol=1e-4)
    cond = cond_rss & cond_tss
    raw_scores = torch.ones_like(rss)
    raw_scores[cond] = 1 - (rss[cond] / tss[cond])
    raw_scores[cond_rss & ~cond_tss] = 0.0
    if multioutput == "raw_values":
        r2 = raw_scores
    elif multioutput == "uniform_average":
        r2 = torch.mean(raw_scores)
    elif multioutput == "variance_weighted":
        tss_sum = torch.sum(tss)
        r2 = torch.sum(tss / tss_sum * raw_scores)
    else:
        raise ValueError(
            "Argument `multioutput` must be either `raw_values`,"
            f" `uniform_average` or `variance_weighted`. Received {multioutput}."
        )
    if adjusted < 0 or not isinstance(adjusted, int):
        raise ValueError("`adjusted` parameter should be an integer larger or equal to 0.")
    if adjusted != 0:
        if adjusted > n_obs - 1:
            rank_zero_warn(
                "More independent regressions than data points in"
                " adjusted r2 score. Falls back to standard r2 score.",
                UserWarning,
            )
        elif adjusted == n_obs - 1:
            rank_zero_warn("Division by zero in adjusted r2 score. Falls back to standard r2 score.", UserWarning)
        else:
            return 1 - (1 - r2) * (n_obs - 1) / (n_obs - adjusted - 1)
    return r2