{"record":{"id":"78f99e9a0b080b82","repo":"keras-team/keras","slug":"only-one-of-pad-to-aspect-ratio-crop-to-aspec-78f99e","errorCode":null,"errorMessage":"Only one of `pad_to_aspect_ratio` & `crop_to_aspect_ratio` can be `True`.","messagePattern":"Only one of `pad_to_aspect_ratio` & `crop_to_aspect_ratio` can be `True`\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"keras/src/backend/numpy/ops/image.py","lineNumber":189,"sourceCode":"    crop_to_aspect_ratio=False,\n    pad_to_aspect_ratio=False,\n    fill_mode=\"constant\",\n    fill_value=0.0,\n    data_format=None,\n):\n    data_format = standardize_data_format(data_format)\n    if interpolation not in RESIZE_INTERPOLATIONS:\n        raise ValueError(\n            \"Invalid value for argument `interpolation`. Expected of one \"\n            f\"{RESIZE_INTERPOLATIONS}. Received: interpolation={interpolation}\"\n        )\n    if fill_mode != \"constant\":\n        raise ValueError(\n            \"Invalid value for argument `fill_mode`. Only `'constant'` \"\n            f\"is supported. Received: fill_mode={fill_mode}\"\n        )\n    if pad_to_aspect_ratio and crop_to_aspect_ratio:\n        raise ValueError(\n            \"Only one of `pad_to_aspect_ratio` & `crop_to_aspect_ratio` \"\n            \"can be `True`.\"\n        )\n    if not len(size) == 2:\n        raise ValueError(\n            \"Argument `size` must be a tuple of two elements \"\n            f\"(height, width). Received: size={size}\"\n        )\n    size = tuple(size)\n    target_height, target_width = size\n    if len(images.shape) == 4:\n        if data_format == \"channels_last\":\n            size = (images.shape[0],) + size + (images.shape[-1],)\n        else:\n            size = (images.shape[0], images.shape[1]) + size\n    elif len(images.shape) == 3:\n        if data_format == \"channels_last\":\n            size = size + (images.shape[-1],)","sourceCodeStart":171,"sourceCodeEnd":207,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/backend/numpy/ops/image.py#L171-L207","documentation":"Mutual-exclusion guard in `resize` (NumPy backend): `crop_to_aspect_ratio` and `pad_to_aspect_ratio` are two different, incompatible strategies for reaching a target aspect ratio (discard pixels vs. add fill pixels). Enabling both would make the output geometry ambiguous, so the guard raises this error whenever both flags are True at once.","triggerScenarios":"Thrown at keras/src/backend/numpy/ops/image.py:189 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Enable exactly one of the two flags: crop_to_aspect_ratio=True or pad_to_aspect_ratio=True, leaving the other False","Choose padding if losing image content is unacceptable, or cropping if added fill pixels are unacceptable","Fix config code that sets both flags from independent booleans without an explicit choice"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}