{"record":{"id":"86ac2810a89fa08b","repo":"keras-team/keras","slug":"invalid-value-for-argument-class-aggregation-ex","errorCode":null,"errorMessage":"Invalid value for argument `class_aggregation`. Expected one of {valid_class_aggregation_values}. Received: class_aggregation={class_aggregation}","messagePattern":"Invalid value for argument `class_aggregation`\\. Expected one of (.+?)\\. Received: class_aggregation=(.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/metrics/regression_metrics.py","lineNumber":421,"sourceCode":"\n    def __init__(\n        self,\n        class_aggregation=\"uniform_average\",\n        num_regressors=0,\n        name=\"r2_score\",\n        dtype=None,\n    ):\n        super().__init__(name=name, dtype=dtype)\n        # Metric should be maximized during optimization.\n        self._direction = \"up\"\n\n        valid_class_aggregation_values = (\n            None,\n            \"uniform_average\",\n            \"variance_weighted_average\",\n        )\n        if class_aggregation not in valid_class_aggregation_values:\n            raise ValueError(\n                \"Invalid value for argument `class_aggregation`. Expected \"\n                f\"one of {valid_class_aggregation_values}. \"\n                f\"Received: class_aggregation={class_aggregation}\"\n            )\n        if num_regressors < 0:\n            raise ValueError(\n                \"Invalid value for argument `num_regressors`. \"\n                \"Expected a value >= 0. \"\n                f\"Received: num_regressors={num_regressors}\"\n            )\n        self.class_aggregation = class_aggregation\n        self.num_regressors = num_regressors\n        self.num_samples = self.add_variable(\n            shape=(),\n            initializer=initializers.Zeros(),\n            name=\"num_samples\",\n        )\n        self._built = False","sourceCodeStart":403,"sourceCodeEnd":439,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/metrics/regression_metrics.py#L403-L439","documentation":"R2Score's class_aggregation argument controls how per-output R-squared values are combined and only accepts None, 'uniform_average' or 'variance_weighted_average'. Any other string (e.g. 'mean' or 'average') raises this ValueError at construction time.","triggerScenarios":"keras.metrics.R2Score(class_aggregation='mean') or any value not in (None, 'uniform_average', 'variance_weighted_average').","commonSituations":"Assuming sklearn R2Score-style naming ('raw_values', 'mean') transfers to Keras; typo'd config values.","solutions":["Use 'uniform_average' for a plain mean of per-output scores.","Use 'variance_weighted_average' for variance-weighted aggregation, or None to get per-output values."],"exampleFix":"# before\nmetric = keras.metrics.R2Score(class_aggregation='mean')\n\n# after\nmetric = keras.metrics.R2Score(class_aggregation='uniform_average')","handlingStrategy":"validation","validationCode":"VALID = (None, 'uniform_average', 'variance_weighted_average')\nassert class_aggregation in VALID, f'class_aggregation must be in {VALID}'","typeGuard":"def is_valid_class_agg(v) -> bool:\n    return v in (None, 'uniform_average', 'variance_weighted_average')","tryCatchPattern":null,"preventionTips":["Whitelist class_aggregation values during config parsing."],"tags":["keras","metrics","r2-score","invalid-argument","regression"],"backgroundTag":"invalid-enum-value","analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}