{"record":{"id":"aa9242898f9592c0","repo":"keras-team/keras","slug":"zoom-range-should-be-a-tuple-or-list-of-two-floa","errorCode":null,"errorMessage":"`zoom_range` should be a tuple or list of two floats. Received: {zoom_range}","messagePattern":"`zoom_range` should be a tuple or list of two floats\\. Received: (.+?)","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"warning","filePath":"keras/src/legacy/preprocessing/image.py","lineNumber":1638,"sourceCode":"        order=interpolation_order,\n    )\n    return x\n\n\n@keras_export(\"keras._legacy.preprocessing.image.random_zoom\")\ndef random_zoom(\n    x,\n    zoom_range,\n    row_axis=1,\n    col_axis=2,\n    channel_axis=0,\n    fill_mode=\"nearest\",\n    cval=0.0,\n    interpolation_order=1,\n):\n    \"\"\"DEPRECATED.\"\"\"\n    if len(zoom_range) != 2:\n        raise ValueError(\n            \"`zoom_range` should be a tuple or list of two floats. \"\n            f\"Received: {zoom_range}\"\n        )\n\n    if zoom_range[0] == 1 and zoom_range[1] == 1:\n        zx, zy = 1, 1\n    else:\n        zx, zy = np.random.uniform(zoom_range[0], zoom_range[1], 2)\n    x = apply_affine_transform(\n        x,\n        zx=zx,\n        zy=zy,\n        row_axis=row_axis,\n        col_axis=col_axis,\n        channel_axis=channel_axis,\n        fill_mode=fill_mode,\n        cval=cval,\n        order=interpolation_order,","sourceCodeStart":1620,"sourceCodeEnd":1656,"githubUrl":"https://github.com/keras-team/keras/blob/7a34a03db60bf60042242d6a556fc3be119046a5/keras/src/legacy/preprocessing/image.py#L1620-L1656","documentation":"Deprecated function keras.src.legacy.preprocessing.image.random_zoom requires zoom_range as a sequence of exactly two floats [zx_min, zx_max]; a scalar float is not accepted here (unlike the constructor).","triggerScenarios":"Directly calling random_zoom(x, zoom_range=0.2) or with a 1-element list.","commonSituations":"Copy-pasting a scalar zoom from ImageDataGenerator config into the standalone function; porting old Keras scripts.","solutions":["Pass a 2-element list: random_zoom(x, [0.8, 1.2])","Prefer the non-deprecated random_zoom in keras.ops or use the generator's zoom","If scalar desired, expand: [1-z, 1+z]"],"exampleFix":"// before\nrandom_zoom(x, zoom_range=0.2)\n// after\nrandom_zoom(x, zoom_range=[0.8, 1.2])\n","handlingStrategy":"validation","validationCode":"assert len(zoom_range) == 2","typeGuard":"def zoom2(z): return isinstance(z,(list,tuple)) and len(z)==2","tryCatchPattern":"try: random_zoom(x, zr)\nexcept ValueError as e: if 'zoom_range' in str(e): zr = [0.8, 1.2]","preventionTips":["Migrate off deprecated legacy helpers; if kept, always 2-element ranges"],"tags":["keras","deprecated","data-augmentation"],"backgroundTag":"invalid-argument-value","analyzedSha":"7a34a03db60bf60042242d6a556fc3be119046a5","analyzedAt":"2026-08-25T21:25:25.994Z","schemaVersion":2},"datasetVersion":"2026-08-26T02:17:13.382Z"}