diff options
author | Dhruv Chauhan <dhruv.chauhan@arm.com> | 2023-03-20 10:22:08 +0000 |
---|---|---|
committer | Dhruv Chauhan <dhruv.chauhan@arm.com> | 2023-03-24 12:44:23 +0000 |
commit | edf436c48029aa4e2b4ca5d17eee5a8f07ecbd6f (patch) | |
tree | 2375038e77873f6cd499b8938bc8b816daea3fc8 /src/mlia/target/ethos_u/reporters.py | |
parent | 803a91c0723533f62148528a81f9d0411b57438e (diff) | |
download | mlia-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 'src/mlia/target/ethos_u/reporters.py')
-rw-r--r-- | src/mlia/target/ethos_u/reporters.py | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/mlia/target/ethos_u/reporters.py b/src/mlia/target/ethos_u/reporters.py index 2a5b5d3..4964462 100644 --- a/src/mlia/target/ethos_u/reporters.py +++ b/src/mlia/target/ethos_u/reporters.py @@ -23,6 +23,8 @@ from mlia.core.reporting import Report from mlia.core.reporting import ReportItem from mlia.core.reporting import SingleRow from mlia.core.reporting import Table +from mlia.nn.tensorflow.tflite_compat import TFLiteCompatibilityInfo +from mlia.target.common.reporters import report_tflite_compatiblity from mlia.target.ethos_u.config import EthosUConfiguration from mlia.target.ethos_u.performance import PerformanceMetrics from mlia.utils.console import style_improvement @@ -363,23 +365,31 @@ def report_perf_metrics( def ethos_u_formatters(data: Any) -> Callable[[Any], Report]: """Find appropriate formatter for the provided data.""" + report: Callable[[Any], Report] | None = None + if isinstance(data, PerformanceMetrics) or is_list_of(data, PerformanceMetrics, 2): - return report_perf_metrics + report = report_perf_metrics - if is_list_of(data, Advice): - return report_advice + elif is_list_of(data, Advice): + report = report_advice - if is_list_of(data, Operator): - return report_operators + elif is_list_of(data, Operator): + report = report_operators - if isinstance(data, Operators): - return report_operators_stat + elif isinstance(data, Operators): + report = report_operators_stat - if isinstance(data, EthosUConfiguration): - return report_target_details + elif isinstance(data, EthosUConfiguration): + report = report_target_details - if isinstance(data, (list, tuple)): + elif isinstance(data, (list, tuple)): formatters = [ethos_u_formatters(item) for item in data] - return CompoundFormatter(formatters) + report = CompoundFormatter(formatters) + + elif isinstance(data, TFLiteCompatibilityInfo): + report = report_tflite_compatiblity + + else: + raise Exception(f"Unable to find appropriate formatter for {data}") - raise Exception(f"Unable to find appropriate formatter for {data}") + return report # type: ignore |