keras-team/keras · error · ValueError
`patches` last dim ({flat}) is not divisible by prod(size) (
Error message
`patches` last dim ({flat}) is not divisible by prod(size) ({patch_volume}). What it means
Error "`patches` last dim ({flat}) is not divisible by prod(size) ({patch_volume})." thrown in keras-team/keras.
Source
Thrown at keras/src/ops/image.py:1004
expected_ndim_batched = 4
expected_ndim_unbatched = 3
spatial = self.output_size # (H, W)
if original_ndim == expected_ndim_batched:
batch = patches_shape[0]
elif original_ndim == expected_ndim_unbatched:
batch = None
else:
raise ValueError(
f"`patches` has unexpected rank for "
f"{'3D' if self.is_3d else '2D'} reconstruction. "
f"Expected {expected_ndim_unbatched} (unbatched) or "
f"{expected_ndim_batched} (batched). "
f"Received shape: {patches.shape}"
)
if flat is not None and flat % patch_volume != 0:
raise ValueError(
f"`patches` last dim ({flat}) is not divisible by "
f"prod(size) ({patch_volume})."
)
if self.data_format == "channels_last":
grid_offset = 1 if original_ndim == expected_ndim_batched else 0
grid = patches_shape[grid_offset : grid_offset + len(self.size)]
else:
# channels_first: the grid dims are the trailing dims,
# (B, flat, *grid) batched or (flat, *grid) unbatched.
grid = patches_shape[-len(self.size) :]
dim_names = ("depth", "height", "width")[-len(self.size) :]
for g, p, o, dim_name in zip(
grid, self.size, self.output_size, dim_names
):
if not isinstance(g, int):
continue
if self.padding == "valid":View on GitHub (pinned to 7a34a03db6)
When it happens
Trigger: Thrown at keras/src/ops/image.py:1004 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of keras-team/keras@7a34a03db6 (2026-08-25).
Data as JSON: /api/errors/386c1c0061c2957a.
Report an issue: GitHub.