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
RandomBrightness requires value_range to be a tuple or list of two numbers describing the valid pixel range of the inputs. Passing a scalar, None, or string raises this ValueError from _set_value_range during layer construction.
Source
Thrown at keras/src/layers/preprocessing/image_preprocessing/random_brightness.py:79
[[32.5, 33.5, 34.5]
[35.5, 36.5, 37.5]]],
shape=(2, 2, 3), dtype=int64)
```
"""
_VALUE_RANGE_VALIDATION_ERROR = (
"The `value_range` argument should be a list of two numbers. "
)
def __init__(self, factor, value_range=(0, 255), seed=None, **kwargs):
super().__init__(factor=factor, **kwargs)
self.seed = seed
self.generator = SeedGenerator(seed)
self._set_value_range(value_range)
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) for uint8-scaled images or (0, 1) for float images
- Apply Rescaling(1/255) before and use (0, 1) consistently
Example fix
# before layer = keras.layers.RandomBrightness(factor=0.2, value_range=255) # after layer = keras.layers.RandomBrightness(factor=0.2, value_range=(0, 255))
Defensive patterns
Strategy: type-guard
Validate before calling
if not isinstance(value_range, (tuple, list)):
value_range = (0, value_range) if isinstance(value_range, (int, float)) else (0, 255) Type guard
def is_valid_value_range(v):
return isinstance(v, (tuple, list)) and len(v) == 2 Prevention
- Prefer (0, 1) everywhere by adding Rescaling(1/255) first; declare value_range=(0, 1) on all augmentation layers
When it happens
Trigger: layers.RandomBrightness(factor=0.5, value_range=255) or value_range=None.
Common situations: Porting augmentation code from APIs that take a single max; assuming a default range exists; float images in [0,1] without declaring (0, 1).
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/9f318867da0c3e22.
Report an issue: GitHub.