aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/target/ethos_u/reporters.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mlia/target/ethos_u/reporters.py')
-rw-r--r--src/mlia/target/ethos_u/reporters.py34
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