keras-team/keras · error · ValueError

`patches` has unexpected rank for 2D channels_first reconstr

Error message

`patches` has unexpected rank for 2D channels_first reconstruction. Expected 3 (unbatched) or 4 (batched). Received shape: {patches.shape}

What it means

Error "`patches` has unexpected rank for 2D channels_first reconstruction. Expected 3 (unbatched) or 4 (batched). Received shape: {patches.shape}" thrown in keras-team/keras.

Source

Thrown at keras/src/ops/image.py:1236

        raise ValueError(
            "Invalid `output_size`. Expected length 2 (H, W). "
            f"Got: output_size={output_size}"
        )
    if padding not in ("same", "valid"):
        raise ValueError(
            f"Invalid `padding`. Expected 'same' or 'valid'. Got: {padding}"
        )
    _validate_reconstruct_strides(size, strides, "reconstruct_patches")
    data_format = backend.standardize_data_format(data_format)
    if data_format == "channels_first":
        # Reconstruct in channels_last layout, then move channels back.
        # Patches are (flat, gH, gW) unbatched or (B, flat, gH, gW) batched.
        if len(patches.shape) == 3:
            patches = backend.numpy.transpose(patches, axes=(1, 2, 0))
        elif len(patches.shape) == 4:
            patches = backend.numpy.transpose(patches, axes=(0, 2, 3, 1))
        else:
            raise ValueError(
                "`patches` has unexpected rank for 2D channels_first "
                "reconstruction. Expected 3 (unbatched) or 4 (batched). "
                f"Received shape: {patches.shape}"
            )
        result = _reconstruct_patches_2d(
            patches, size, output_size, strides, padding, "channels_last"
        )
        if len(result.shape) == 3:
            return backend.numpy.transpose(result, axes=(2, 0, 1))
        return backend.numpy.transpose(result, axes=(0, 3, 1, 2))

    pH, pW = size
    H, W = output_size

    if len(patches.shape) not in (3, 4):
        raise ValueError(
            "`patches` has unexpected rank for 2D reconstruction. "
            "Expected 3 (unbatched) or 4 (batched). "

View on GitHub (pinned to 7a34a03db6)

When it happens

Trigger: Thrown at keras/src/ops/image.py:1236 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/bab387ab1720b42e. Report an issue: GitHub.