{"record":{"id":"bab387ab1720b42e","repo":"keras-team/keras","slug":"patches-has-unexpected-rank-for-2d-channels-firs","errorCode":null,"errorMessage":"`patches` has unexpected rank for 2D channels_first reconstruction. Expected 3 (unbatched) or 4 (batched). Received shape: {patches.shape}","messagePattern":"`patches` has unexpected rank for 2D channels_first reconstruction\\. Expected 3 \\(unbatched\\) or 4 \\(batched\\)\\. Received shape: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/ops/image.py","lineNumber":1236,"sourceCode":"        raise ValueError(\n            \"Invalid `output_size`. Expected length 2 (H, W). \"\n            f\"Got: output_size={output_size}\"\n        )\n    if padding not in (\"same\", \"valid\"):\n        raise ValueError(\n            f\"Invalid `padding`. Expected 'same' or 'valid'. Got: {padding}\"\n        )\n    _validate_reconstruct_strides(size, strides, \"reconstruct_patches\")\n    data_format = backend.standardize_data_format(data_format)\n    if data_format == \"channels_first\":\n        # Reconstruct in channels_last layout, then move channels back.\n        # Patches are (flat, gH, gW) unbatched or (B, flat, gH, gW) batched.\n        if len(patches.shape) == 3:\n            patches = backend.numpy.transpose(patches, axes=(1, 2, 0))\n        elif len(patches.shape) == 4:\n            patches = backend.numpy.transpose(patches, axes=(0, 2, 3, 1))\n        else:\n            raise ValueError(\n                \"`patches` has unexpected rank for 2D channels_first \"\n                \"reconstruction. Expected 3 (unbatched) or 4 (batched). \"\n                f\"Received shape: {patches.shape}\"\n            )\n        result = _reconstruct_patches_2d(\n            patches, size, output_size, strides, padding, \"channels_last\"\n        )\n        if len(result.shape) == 3:\n            return backend.numpy.transpose(result, axes=(2, 0, 1))\n        return backend.numpy.transpose(result, axes=(0, 3, 1, 2))\n\n    pH, pW = size\n    H, W = output_size\n\n    if len(patches.shape) not in (3, 4):\n        raise ValueError(\n            \"`patches` has unexpected rank for 2D reconstruction. \"\n            \"Expected 3 (unbatched) or 4 (batched). \"","sourceCodeStart":1218,"sourceCodeEnd":1254,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/ops/image.py#L1218-L1254","documentation":"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.","triggerScenarios":"Thrown at keras/src/ops/image.py:1236 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}