**Fix reciprocal op crash on int32 input by raising ValueError (Fixes #2579)**#2580
**Fix reciprocal op crash on int32 input by raising ValueError (Fixes #2579)**#2580Pranaykarvi wants to merge 1 commit intoapple:mainfrom
Conversation
|
Thank you @Pranaykarvi for contributing! I will let this week's oncaller (@abhishek-patel6) to take a look. |
|
Hi, @Pranaykarvi . Thank you for the patch! I think that the conversion already throws an error. Original issue expects the torch compiler to implicitly convert to float. Probably something like coremltools/coremltools/converters/mil/frontend/torch/ops.py Lines 7103 to 7108 in d4b83ad |
|
Thanks @abhishek-patel6! I checked That’s why I added the check directly in the MIL op to raise a clear |
I think there is a handler for inverse. coremltools/coremltools/converters/mil/frontend/torch/ops.py Lines 7087 to 7090 in d4b83ad Anyways, the linked issue requests for implicit conversion to float IIUC. Throwing an error message earlier wouldn't fix their original issue still. |
📝 Description
This PR addresses Issue #2579, where calling the
reciprocalMIL op withint32inputs causes an unexpected crash during SSA conversion.🔧 Problem
Using
mb.reciprocal(x=int32_tensor)leads to a runtime crash because reciprocal operations are invalid forint32types. The crash occurred deep within the MIL SSA conversion without a clear error message, making it hard to debug.✅ Fix
ValueErrorin thetype_inferencemethod of thereciprocalop forint32inputs.🧪 Tests
test_inverse_conversion.pyto verify theValueErroris raised correctly.pytest coremltools/test/test_inverse_conversion.py.🧠 Files Changed
coremltools/converters/mil/mil/ops/defs/elementwise.py➤ Added type check and exception for
int32inputs inreciprocal.type_inference.coremltools/test/test_inverse_conversion.py➤ Added test case to ensure invalid
int32input raisesValueError.🔗 Related Issue
Closes #2579