aboutsummaryrefslogtreecommitdiff
path: root/tests/test_target_ethos_u_data_analysis.py
diff options
context:
space:
mode:
authorDhruv Chauhan <dhruv.chauhan@arm.com>2023-03-20 10:22:08 +0000
committerDhruv Chauhan <dhruv.chauhan@arm.com>2023-03-24 12:44:23 +0000
commitedf436c48029aa4e2b4ca5d17eee5a8f07ecbd6f (patch)
tree2375038e77873f6cd499b8938bc8b816daea3fc8 /tests/test_target_ethos_u_data_analysis.py
parent803a91c0723533f62148528a81f9d0411b57438e (diff)
downloadmlia-edf436c48029aa4e2b4ca5d17eee5a8f07ecbd6f.tar.gz
MLIA-711 Extend TensorFlow Lite Compatibility Check
- Unify the TensorFlow Lite compatibility check across Cortex-A, TOSA and Ethos-U targets - Display tables/messages with parsed information - Do not display raw TensorFlow Lite errors, and return with exit code 0 Change-Id: I9333fdb6cbe592f1ed7395d392412168492a1479
Diffstat (limited to 'tests/test_target_ethos_u_data_analysis.py')
-rw-r--r--tests/test_target_ethos_u_data_analysis.py52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/test_target_ethos_u_data_analysis.py b/tests/test_target_ethos_u_data_analysis.py
index 8e63946..80f0603 100644
--- a/tests/test_target_ethos_u_data_analysis.py
+++ b/tests/test_target_ethos_u_data_analysis.py
@@ -13,6 +13,13 @@ from mlia.backend.vela.compat import Operators
from mlia.core.common import DataItem
from mlia.core.data_analysis import Fact
from mlia.nn.tensorflow.optimizations.select import OptimizationSettings
+from mlia.nn.tensorflow.tflite_compat import TFLiteCompatibilityInfo
+from mlia.nn.tensorflow.tflite_compat import TFLiteCompatibilityStatus
+from mlia.nn.tensorflow.tflite_compat import TFLiteConversionError
+from mlia.nn.tensorflow.tflite_compat import TFLiteConversionErrorCode
+from mlia.target.common.reporters import ModelHasCustomOperators
+from mlia.target.common.reporters import ModelIsNotTFLiteCompatible
+from mlia.target.common.reporters import TFLiteCompatibilityCheckFailed
from mlia.target.ethos_u.config import EthosUConfiguration
from mlia.target.ethos_u.data_analysis import AllOperatorsSupportedOnNPU
from mlia.target.ethos_u.data_analysis import EthosUDataAnalyzer
@@ -139,6 +146,51 @@ def test_perf_metrics_diff() -> None:
),
[],
],
+ [
+ TFLiteCompatibilityInfo(status=TFLiteCompatibilityStatus.COMPATIBLE),
+ [],
+ ],
+ [
+ TFLiteCompatibilityInfo(
+ status=TFLiteCompatibilityStatus.MODEL_WITH_CUSTOM_OP_ERROR
+ ),
+ [ModelHasCustomOperators()],
+ ],
+ [
+ TFLiteCompatibilityInfo(status=TFLiteCompatibilityStatus.UNKNOWN_ERROR),
+ [TFLiteCompatibilityCheckFailed()],
+ ],
+ [
+ TFLiteCompatibilityInfo(
+ status=TFLiteCompatibilityStatus.TFLITE_CONVERSION_ERROR
+ ),
+ [ModelIsNotTFLiteCompatible(custom_ops=[], flex_ops=[])],
+ ],
+ [
+ TFLiteCompatibilityInfo(
+ status=TFLiteCompatibilityStatus.TFLITE_CONVERSION_ERROR,
+ conversion_errors=[
+ TFLiteConversionError(
+ "error",
+ TFLiteConversionErrorCode.NEEDS_CUSTOM_OPS,
+ "custom_op1",
+ [],
+ ),
+ TFLiteConversionError(
+ "error",
+ TFLiteConversionErrorCode.NEEDS_FLEX_OPS,
+ "flex_op1",
+ [],
+ ),
+ ],
+ ),
+ [
+ ModelIsNotTFLiteCompatible(
+ custom_ops=["custom_op1"],
+ flex_ops=["flex_op1"],
+ )
+ ],
+ ],
],
)
def test_ethos_u_data_analyzer(