class_docstr: Computes R2 score.
  
  Formula:
  
  ```python
  sum_squares_residuals = sum((y_true - y_pred) ** 2)
  sum_squares = sum((y_true - mean(y_true)) ** 2)
  R2 = 1 - sum_squares_residuals / sum_squares
  ```
  
  This is also called the
  [coefficient of determination](
  https://en.wikipedia.org/wiki/Coefficient_of_determination).
  
  It indicates how close the fitted regression line
  is to ground-truth data.
  
  - The highest score possible is 1.0. It indicates that the predictors
      perfectly accounts for variation in the target.
  - A score of 0.0 indicates that the predictors do not
      account for variation in the target.
  - It can also be negative if the model is worse than random.
  
  This metric can also compute the "Adjusted R2" score.
  
  Args:
      class_aggregation: Specifies how to aggregate scores corresponding to
          different output classes (or target dimensions),
          i.e. different dimensions on the last axis of the predictions.
          Equivalent to `multioutput` argument in Scikit-Learn.
          Should be one of
          `None` (no aggregation), `"uniform_average"`,
          `"variance_weighted_average"`.
      num_regressors: Number of independent regressors used
          ("Adjusted R2" score). 0 is the standard R2 score.
          Defaults to `0`.
      name: Optional. string name of the metric instance.
      dtype: Optional. data type of the metric result.
  
  Example:
  
  >>> y_true = np.array([[1], [4], [3]], dtype=np.float32)
  >>> y_pred = np.array([[2], [4], [4]], dtype=np.float32)
  >>> metric = keras.metrics.R2Score()
  >>> metric.update_state(y_true, y_pred)
  >>> result = metric.result()
  >>> result
  0.57142854
class_docstr_tok: ["Computes","R2","score",".","Formula",":","``","`","python","sum_squares_residuals","=","sum","(","(","y_true","-","y_pred",")","*","*","2",")","sum_squares","=","sum","(","(","y_true","-","mean","(","y_true",")",")","*","*","2",")","R2","=","1","-","sum_squares_residuals","\/","sum_squares","``","`","This","is","also","called","the","[","coefficient","of","determination","]","(","https",":","\/\/en.wikipedia.org\/wiki\/Coefficient_of_determination",")",".","It","indicates","how","close","the","fitted","regression","line","is","to","ground-truth","data",".","-","The","highest","score","possible","is","1.0",".","It","indicates","that","the","predictors","perfectly","accounts","for","variation","in","the","target",".","-","A","score","of","0.0","indicates","that","the","predictors","do","not","account","for","variation","in","the","target",".","-","It","can","also","be","negative","if","the","model","is","worse","than","random",".","This","metric","can","also","compute","the","``","Adjusted","R2","''","score",".","Args",":","class_aggregation",":","Specifies","how","to","aggregate","scores","corresponding","to","different","output","classes","(","or","target","dimensions",")",",","i.e",".","different","dimensions","on","the","last","axis","of","the","predictions",".","Equivalent","to","`","multioutput","`","argument","in","Scikit-Learn",".","Should","be","one","of","`","None","`","(","no","aggregation",")",",","`","``","uniform_average","''","`",",","`","``","variance_weighted_average","''","`",".","num_regressors",":","Number","of","independent","regressors","used","(","``","Adjusted","R2","''","score",")",".","0","is","the","standard","R2","score",".","Defaults","to","`","0","`",".","name",":","Optional",".","string","name","of","the","metric","instance",".","dtype",":","Optional",".","data","type","of","the","metric","result",".","Example",":",">",">",">","y_true","=","np.array","(","[","[","1","]",",","[","4","]",",","[","3","]","]",",","dtype=np.float32",")",">",">",">","y_pred","=","np.array","(","[","[","2","]",",","[","4","]",",","[","4","]","]",",","dtype=np.float32",")",">",">",">","metric","=","keras.metrics.R2Score","(",")",">",">",">","metric.update_state","(","y_true",",","y_pred",")",">",">",">","result","=","metric.result","(",")",">",">",">","result","0.57142854"]
docstr: Accumulates root mean squared error statistics.
  
  Args:
      y_true: The ground truth values.
      y_pred: The predicted values.
      sample_weight: Optional weighting of each example. Can
          be a `Tensor` whose rank is either 0, or the same rank as
          `y_true`, and must be broadcastable to `y_true`.
          Defaults to `1`.
  
  Returns:
      Update op.
docstr_tok: ["Accumulates","root","mean","squared","error","statistics",".","Args",":","y_true",":","The","ground","truth","values",".","y_pred",":","The","predicted","values",".","sample_weight",":","Optional","weighting","of","each","example",".","Can","be","a","`","Tensor","`","whose","rank","is","either","0",",","or","the","same","rank","as","`","y_true","`",",","and","must","be","broadcastable","to","`","y_true","`",".","Defaults","to","`","1","`",".","Returns",":","Update","op","."]
code: def update_state(self, y_true, y_pred, sample_weight=None):
      """Accumulates root mean squared error statistics.
  
      Args:
          y_true: The ground truth values.
          y_pred: The predicted values.
          sample_weight: Optional weighting of each example. Can
              be a `Tensor` whose rank is either 0, or the same rank as
              `y_true`, and must be broadcastable to `y_true`.
              Defaults to `1`.
  
      Returns:
          Update op.
      """
      y_true = ops.convert_to_tensor(y_true, dtype=self._dtype)
      y_pred = ops.convert_to_tensor(y_pred, dtype=self._dtype)
      y_true, y_pred = squeeze_to_same_rank(y_true, y_pred)
      if not self._built:
          self._build(y_true.shape, y_pred.shape)
  
      if sample_weight is None:
          sample_weight = 1
  
      sample_weight = ops.convert_to_tensor(
          sample_weight, dtype=self.dtype
      )
  
      if len(sample_weight.shape) == 1:
          # Make sure there's a features dimension
          sample_weight = ops.expand_dims(sample_weight, axis=1)
  
      sample_weight = ops.broadcast_to(sample_weight, ops.shape(y_true))
  
      weighted_y_true = y_true * ops.cast(sample_weight, y_true.dtype)
      self.sum.assign(self.sum + ops.sum(weighted_y_true, axis=0))
      self.squared_sum.assign(
          self.squared_sum + ops.sum(y_true * weighted_y_true, axis=0)
      )
      self.total_mse.assign(
          self.total_mse
          + ops.sum(
              (y_true - y_pred) ** 2
              * ops.cast(sample_weight, y_true.dtype),
              axis=0,
          )
      )
      self.count.assign(self.count + ops.sum(sample_weight, axis=0))
      self.num_samples.assign(self.num_samples + ops.size(y_true))
  
imports: import warnings
  from keras import initializers
  from keras import ops
  from keras.api_export import keras_export
  from keras.losses.loss import squeeze_to_same_rank
  from keras.losses.losses import log_cosh
  from keras.losses.losses import mean_absolute_error
  from keras.losses.losses import mean_absolute_percentage_error
  from keras.losses.losses import mean_squared_error
  from keras.losses.losses import mean_squared_logarithmic_error
  from keras.metrics import reduction_metrics
  from keras.utils.numerical_utils import normalize
label_desc: Use image node_id 3 for calling the R2Score obj's underlying member method code with example usage: obj.update_state(y_true, y_pred, sample_weight) without return types