aboutsummaryrefslogtreecommitdiff
path: root/src/mlia/cli/options.py
diff options
context:
space:
mode:
authorGergely Nagy <gergely.nagy@arm.com>2023-06-22 14:35:21 +0100
committerBenjamin Klimczak <benjamin.klimczak@arm.com>2023-10-11 16:16:11 +0100
commitbaaf4de286762c1955c874f78cd802d4703a8ba5 (patch)
tree3b80f906672f91e7e24723720b2d164d360f3edf /src/mlia/cli/options.py
parent3cd84481fa25e64c29e57396d4bf32d7a3ca490a (diff)
downloadmlia-baaf4de286762c1955c874f78cd802d4703a8ba5.tar.gz
Re-factoring of rewrite management & added metrics
- List available rewrites - Refactor/rename 'Rewrite' class to 'RewritingOptimizer' - Introduce a registry for rewrite functions - Refactor 'Rewriter' to use the registry to look up rewrite functions - Remove mentions of hardcoded "fully_connected" from CLI help and error messages, using the registry instead - Add unit tests - Enable rewrites for all targets: Extract optimization (including rewrite specific code) from the Ethos-U-specific data collector into OptimizingDataCollector. This is reused in other targets' collectors, such as TOSA and Cortex-A. - Add more logging for rewrite - add display of MAE and NRMSE values for the trained result - add total model MAE and NRMSE metric Resolves: MLIA-891, MLIA-899, MLIA-906 Change-Id: Ie798749e1ed60cab14fdb6d9c2271c833960e93f Signed-off-by: Benjamin Klimczak <benjamin.klimczak@arm.com>
Diffstat (limited to 'src/mlia/cli/options.py')
-rw-r--r--src/mlia/cli/options.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/mlia/cli/options.py b/src/mlia/cli/options.py
index 7b3b373..57f54dd 100644
--- a/src/mlia/cli/options.py
+++ b/src/mlia/cli/options.py
@@ -14,6 +14,7 @@ from mlia.backend.manager import get_available_backends
from mlia.core.common import AdviceCategory
from mlia.core.errors import ConfigurationError
from mlia.core.typing import OutputFormat
+from mlia.nn.rewrite.core.rewrite import RewritingOptimizer
from mlia.target.registry import builtin_profile_names
from mlia.target.registry import registry as target_registry
@@ -111,7 +112,10 @@ def add_multi_optimization_options(parser: argparse.ArgumentParser) -> None:
multi_optimization_group.add_argument(
"--rewrite-target",
type=str,
- help="Type of rewrite to apply to the subgraph/layer.",
+ help=(
+ "Type of rewrite to apply to the subgraph/layer. "
+ f"Available rewrites: {RewritingOptimizer.builtin_rewrite_names()}"
+ ),
)
multi_optimization_group.add_argument(
@@ -327,9 +331,10 @@ def parse_optimization_parameters( # pylint: disable=too-many-arguments
]
if rewrite:
- if rewrite_target not in ["remove", "fully_connected"]:
+ if rewrite_target not in RewritingOptimizer.builtin_rewrite_names():
raise ConfigurationError(
- "Currently only remove and fully_connected are supported."
+ f"Invalid rewrite target: '{rewrite_target}'. "
+ f"Supported rewrites: {RewritingOptimizer.builtin_rewrite_names()}"
)
optimizer_params.append(
{