{"record":{"id":"4645e94c59c93488","repo":"keras-team/keras","slug":"pooling-inputs-s-shape-must-be-3-4-or-5-correspo","errorCode":null,"errorMessage":"Pooling inputs's shape must be 3, 4 or 5, corresponding to 1D, 2D and 3D inputs. But received shape: {inputs.shape}.","messagePattern":"Pooling inputs's shape must be 3, 4 or 5, corresponding to 1D, 2D and 3D inputs\\. But received shape: (.+?)\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/backend/tensorflow/nn.py","lineNumber":218,"sourceCode":"    logits_cumsum_safe = tf.where(support, logits_cumsum, 0.0)\n    k = tf.reduce_sum(tf.cast(support, logits.dtype), axis=axis, keepdims=True)\n    tau = (tf.reduce_sum(logits_cumsum_safe, axis=axis, keepdims=True) - 1) / k\n    output = tf.maximum(logits - tau, 0.0)\n    return output\n\n\ndef _transpose_spatial_inputs(inputs):\n    num_spatial_dims = len(inputs.shape) - 2\n    # Tensorflow pooling does not support `channels_first` format, so\n    # we need to transpose to `channels_last` format.\n    if num_spatial_dims == 1:\n        inputs = tf.transpose(inputs, (0, 2, 1))\n    elif num_spatial_dims == 2:\n        inputs = tf.transpose(inputs, (0, 2, 3, 1))\n    elif num_spatial_dims == 3:\n        inputs = tf.transpose(inputs, (0, 2, 3, 4, 1))\n    else:\n        raise ValueError(\n            \"Pooling inputs's shape must be 3, 4 or 5, corresponding to 1D, 2D \"\n            f\"and 3D inputs. But received shape: {inputs.shape}.\"\n        )\n    return inputs\n\n\ndef _transpose_spatial_outputs(outputs):\n    # Undo the transpose in `_transpose_spatial_inputs`.\n    num_spatial_dims = len(outputs.shape) - 2\n    if num_spatial_dims == 1:\n        outputs = tf.transpose(outputs, (0, 2, 1))\n    elif num_spatial_dims == 2:\n        outputs = tf.transpose(outputs, (0, 3, 1, 2))\n    elif num_spatial_dims == 3:\n        outputs = tf.transpose(outputs, (0, 4, 1, 2, 3))\n    return outputs\n\n","sourceCodeStart":200,"sourceCodeEnd":236,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/backend/tensorflow/nn.py#L200-L236","documentation":"Error \"Pooling inputs's shape must be 3, 4 or 5, corresponding to 1D, 2D and 3D inputs. But received shape: {inputs.shape}.\" thrown in keras-team/keras.","triggerScenarios":"Thrown at keras/src/backend/tensorflow/nn.py:218 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"}