**Fix reciprocal op crash on int32 input by raising ValueError (Fixes #2579)** #2580
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Description
This PR addresses Issue #2579, where calling the
reciprocal
MIL op withint32
inputs causes an unexpected crash during SSA conversion.🔧 Problem
Using
mb.reciprocal(x=int32_tensor)
leads to a runtime crash because reciprocal operations are invalid forint32
types. The crash occurred deep within the MIL SSA conversion without a clear error message, making it hard to debug.✅ Fix
ValueError
in thetype_inference
method of thereciprocal
op forint32
inputs.🧪 Tests
test_inverse_conversion.py
to verify theValueError
is 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
int32
inputs inreciprocal.type_inference
.coremltools/test/test_inverse_conversion.py
➤ Added test case to ensure invalid
int32
input raisesValueError
.🔗 Related Issue
Closes #2579