aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/devices/cortexa/data_analysis.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mlia/devices/cortexa/data_analysis.py')
-rw-r--r--src/mlia/devices/cortexa/data_analysis.py32
1 files changed, 21 insertions, 11 deletions
diff --git a/src/mlia/devices/cortexa/data_analysis.py b/src/mlia/devices/cortexa/data_analysis.py
index 6a82dd0..04bc819 100644
--- a/src/mlia/devices/cortexa/data_analysis.py
+++ b/src/mlia/devices/cortexa/data_analysis.py
@@ -14,7 +14,6 @@ from mlia.core.data_analysis import FactExtractor
from mlia.devices.cortexa.operators import CortexACompatibilityInfo
from mlia.devices.cortexa.operators import Operator
from mlia.nn.tensorflow.tflite_compat import TFLiteCompatibilityInfo
-from mlia.nn.tensorflow.tflite_compat import TFLiteConversionErrorCode
class CortexADataAnalyzer(FactExtractor):
@@ -69,18 +68,19 @@ class CortexADataAnalyzer(FactExtractor):
if data_item.compatible:
return
- custom_ops, flex_ops = [], []
- if data_item.conversion_errors:
- custom_ops = data_item.unsupported_ops_by_code(
- TFLiteConversionErrorCode.NEEDS_CUSTOM_OPS
- )
- flex_ops = data_item.unsupported_ops_by_code(
- TFLiteConversionErrorCode.NEEDS_FLEX_OPS
+ if data_item.conversion_failed_with_errors:
+ self.add_fact(
+ ModelIsNotTFLiteCompatible(
+ custom_ops=data_item.required_custom_ops,
+ flex_ops=data_item.required_flex_ops,
+ )
)
- self.add_fact(
- ModelIsNotTFLiteCompatible(custom_ops=custom_ops, flex_ops=flex_ops)
- )
+ if data_item.check_failed_with_unknown_error:
+ self.add_fact(TFLiteCompatibilityCheckFailed())
+
+ if data_item.conversion_failed_for_model_with_custom_ops:
+ self.add_fact(ModelHasCustomOperators())
@dataclass
@@ -116,3 +116,13 @@ class ModelIsNotTFLiteCompatible(Fact):
custom_ops: list[str] | None = None
flex_ops: list[str] | None = None
+
+
+@dataclass
+class TFLiteCompatibilityCheckFailed(Fact):
+ """TensorFlow Lite compatibility check failed by unknown reason."""
+
+
+@dataclass
+class ModelHasCustomOperators(Fact):
+ """Model could not be loaded because it contains custom ops."""