{"record":{"id":"fd9eadab9449a843","repo":"keras-team/keras","slug":"self-value-range-validation-error-f-received-v-fd9ead","errorCode":null,"errorMessage":"self._VALUE_RANGE_VALIDATION_ERROR + f\"Received: value_range={value_range}\"","messagePattern":"self\\._VALUE_RANGE_VALIDATION_ERROR \\+ f\"Received: value_range=(.+?)\"","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/layers/preprocessing/image_preprocessing/random_color_degeneration.py","lineNumber":61,"sourceCode":"    )\n\n    def __init__(\n        self,\n        factor,\n        value_range=(0, 255),\n        data_format=None,\n        seed=None,\n        **kwargs,\n    ):\n        super().__init__(data_format=data_format, **kwargs)\n        self._set_factor(factor)\n        self._set_value_range(value_range)\n        self.seed = seed\n        self.generator = SeedGenerator(seed)\n\n    def _set_value_range(self, value_range):\n        if not isinstance(value_range, (tuple, list)):\n            raise ValueError(\n                self._VALUE_RANGE_VALIDATION_ERROR\n                + f\"Received: value_range={value_range}\"\n            )\n        if len(value_range) != 2:\n            raise ValueError(\n                self._VALUE_RANGE_VALIDATION_ERROR\n                + f\"Received: value_range={value_range}\"\n            )\n        self.value_range = sorted(value_range)\n\n    def get_random_transformation(self, data, training=True, seed=None):\n        if isinstance(data, dict):\n            images = data[\"images\"]\n        else:\n            images = data\n        images_shape = self.backend.shape(images)\n        rank = len(images_shape)\n        if rank == 3:","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/layers/preprocessing/image_preprocessing/random_color_degeneration.py#L43-L79","documentation":"RandomColorDegeneration requires value_range to be a tuple/list; anything else (scalar, None, string) raises this ValueError from _set_value_range at layer construction.","triggerScenarios":"layers.RandomColorDegeneration(factor=0.5, value_range=255) or value_range=None.","commonSituations":"Same family as other preprocessing layers: assuming scalar max; forgetting to declare (0, 1) for rescaled float images.","solutions":["Pass value_range=(0, 255) or (0, 1) matching your pixel scale","Standardize on one convention (e.g. always Rescaling to [0,1] and value_range=(0,1)) across the augmentation stack"],"exampleFix":"# before\nlayer = keras.layers.RandomColorDegeneration(factor=0.5, value_range=255)\n# after\nlayer = keras.layers.RandomColorDegeneration(factor=0.5, value_range=(0, 255))","handlingStrategy":"type-guard","validationCode":"if not isinstance(value_range, (tuple, list)):\n    raise ValueError('value_range must be (low, high)')","typeGuard":"def is_valid_value_range(v):\n    return isinstance(v, (tuple, list)) and len(v) == 2","tryCatchPattern":null,"preventionTips":["Use one shared value-range constant across the augmentation stack"],"tags":["keras","color-degeneration","value-range","constructor-validation"],"backgroundTag":"invalid-constructor-argument","analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}