keras-team/keras · error · ValueError
self._VALUE_RANGE_VALIDATION_ERROR + f"Received: value_range
Error message
self._VALUE_RANGE_VALIDATION_ERROR + f"Received: value_range={value_range}" What it means
RandomColorDegeneration requires value_range to be a tuple/list; anything else (scalar, None, string) raises this ValueError from _set_value_range at layer construction.
Source
Thrown at keras/src/layers/preprocessing/image_preprocessing/random_color_degeneration.py:61
)
def __init__(
self,
factor,
value_range=(0, 255),
data_format=None,
seed=None,
**kwargs,
):
super().__init__(data_format=data_format, **kwargs)
self._set_factor(factor)
self._set_value_range(value_range)
self.seed = seed
self.generator = SeedGenerator(seed)
def _set_value_range(self, value_range):
if not isinstance(value_range, (tuple, list)):
raise ValueError(
self._VALUE_RANGE_VALIDATION_ERROR
+ f"Received: value_range={value_range}"
)
if len(value_range) != 2:
raise ValueError(
self._VALUE_RANGE_VALIDATION_ERROR
+ f"Received: value_range={value_range}"
)
self.value_range = sorted(value_range)
def get_random_transformation(self, data, training=True, seed=None):
if isinstance(data, dict):
images = data["images"]
else:
images = data
images_shape = self.backend.shape(images)
rank = len(images_shape)
if rank == 3:View on GitHub (pinned to 7a34a03db6)
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
Example fix
# before layer = keras.layers.RandomColorDegeneration(factor=0.5, value_range=255) # after layer = keras.layers.RandomColorDegeneration(factor=0.5, value_range=(0, 255))
Defensive patterns
Strategy: type-guard
Validate before calling
if not isinstance(value_range, (tuple, list)):
raise ValueError('value_range must be (low, high)') Type guard
def is_valid_value_range(v):
return isinstance(v, (tuple, list)) and len(v) == 2 Prevention
- Use one shared value-range constant across the augmentation stack
When it happens
Trigger: layers.RandomColorDegeneration(factor=0.5, value_range=255) or value_range=None.
Common situations: Same family as other preprocessing layers: assuming scalar max; forgetting to declare (0, 1) for rescaled float images.
Related errors
- self._VALUE_RANGE_VALIDATION_ERROR + f"Received: value_range
- self._VALUE_RANGE_VALIDATION_ERROR + f"Received: value_range
- `input_dim` must be a positive integer. Received: input_dim=
- `output_dim` must be a positive integer. Received: output_di
- Expected the input image to be rank 3 or 4. Received inputs.
AI-assisted analysis of keras-team/keras@7a34a03db6 (2026-08-25).
Data as JSON: /api/errors/fd9eadab9449a843.
Report an issue: GitHub.