Age | Commit message (Collapse) | Author |
|
- 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>
|
|
* Add flags for rewrite (--rewrite, --rewrite-start,
--rewrite-end, --rewrite-target)
* Refactor CLI interfaces to accept tflite models with optimize for
rewrite, keras models with optimize for clustering and pruning
* Refactor and move common.py and select.py out of the folder
nn/tensorflow/optimizations
* Add file nn/rewrite/core/rewrite.py as placeholder
* Update/add unit tests
* Refactor OptimizeModel in ethos_u/data_collection.py
for accepting tflite model case
* Extend the logic so that if "--rewrite" is specified, we don't add
pruning to also accept TFLite models.
* Update README.md
Resolves: MLIA-750, MLIA-854, MLIA-865
Signed-off-by: Benjamin Klimczak <benjamin.klimczak@arm.com>
Change-Id: I67d85f71fa253d2bad4efe304ad8225970b9622c
|
|
- Use directory mlia-output as output directory for MLIA
- If parameter --output-dir provided then place directory
mlia-output under specified path or otherwise create it
in the current working directory
Change-Id: I298088c4aa8dbe9f35dee69ecb9ff6e9ea3cac0a
|
|
- If no output directory provided then create one
in the current working directory
- Update documentation and tests
Change-Id: Id1f2acef14e1bd2edffbfa6139a961a5c5018211
|
|
Term 'device' can be ambiguous and is replaced with 'target'.
Change-Id: I5e5108d033a13b98e4c2997713e1c32bce63ae62
|
|
- Use the target/backend registries to avoid hard-coded names.
- Cache target profiles to avoid re-loading them
Change-Id: I474b7c9ef23894e1d8a3ea06d13a37652054c62e
|
|
- Remove old backend configuration code
- Install backends into directory ~/.mlia
- Rename targets/backends in registry to make it consistent
across codebase.
Change-Id: I9c8b012fe863280f1c692940c0dcad3ef638aaae
|
|
New class 'TargetProfile' is used to load and verify target profiles.
Change-Id: I76373a923e2e5f55c4e95860635afe9fc5627a5d
|
|
- Start using TOML format for target profile
- Add support for loading custom target profile files
Change-Id: I6be019d4341e93115440ccdbdb6dafdc1c85b966
|
|
- Add CLI parameter --output-dir
- Rename ExecutionContext property working_dir into output_dir
- Remove logic for default command as it is no longer needed
Change-Id: I6387f6b688520ba1fc69a80167587297353620f6
|
|
* Remove --output parameter from argument parser
* Remove FormattedFilePath class and its presence across the codebase
* Move logging module from cli to core
* The output format is now injected in the execution context and used
across MLIA
* Depending on the output format, TextReporter and JSONReporter have
been created and used accordingly.
* The whole output to standard output and/or logfile is driven via the
logging module: the only case where the print is used is when the
--json parameter is specified. This is needed becase all output
(including third party application as well) needs to be disabled
otherwise it might corrupt the json output in the standard output.
* Debug information is logged into the log file and printed to stdout
when the output format is plain_text.
* Update E2E test and config to cope with the new mechanism of
outputting json data to standard output.
Change-Id: I4395800b0b1af4d24406a828d780bdeef98cd413
|
|
- Change logic for parameter "-b/--backend" to
avoid dependency between CLI options
Change-Id: Ic98cb4eb6340cf249fcaa8ec55d17d21b5664b81
|
|
Breaking change in the CLI and API: Sub-commands "optimization",
"operators", and "performance" were replaced by "check", which
incorporates compatibility and performance checks, and "optimize" which
is used for optimization. "get_advice" API was adapted to these CLI
changes.
API changes:
* Remove previous advice category "all" that would perform all three
operations (when possible). Replace them with the ability to pass a
set of the advice categories.
* Update api.get_advice method docstring to reflect new changes.
* Set default advice category to COMPATIBILITY
* Update core.common.AdviceCategory by changing the "OPERATORS" advice
category to "COMPATIBILITY" and removing "ALL" enum type.
Update all subsequent methods that previously used "OPERATORS" to use
"COMPATIBILITY".
* Update core.context.ExecutionContext to have "COMPATIBILITY" as
default advice_category instead of "ALL".
* Remove api.generate_supported_operators_report and all related
functions from cli.commands, cli.helpers, cli.main, cli.options,
core.helpers
* Update tests to reflect new API changes.
CLI changes:
* Update README.md to contain information on the new CLI
* Remove the ability to generate supported operators support from MLIA
CLI
* Replace `mlia ops` and `mlia perf` with the new `mlia check` command
that can be used to perform both operations.
* Replace `mlia opt` with the new `mlia optimize` command.
* Replace `--evaluate-on` flag with `--backend` flag
* Replace `--verbose` flag with `--debug` flag (no behaviour change).
* Remove the ability for the user to select MLIA working directory.
Create and use a temporary directory in /temp instead.
* Change behaviour of `--output` flag to not format the content
automatically based on file extension anymore. Instead it will simply
redirect to a file.
* Add the `--json` flag to specfy that the format of the output should
be json.
* Add command validators that are used to validate inter-dependent
flags (e.g. backend validation based on target_profile).
* Add support for selecting built-in backends for both `check` and
`optimize` commands.
* Add new unit tests and update old ones to test the new CLI changes.
* Update RELEASES.md
* Update copyright notice
Change-Id: Ia6340797c7bee3acbbd26601950e5a16ad5602db
|
|
Change-Id: Ieeaa9188ea1e29e2ccaad7475d457bce71e3140d
|
|
- Add new type of the backend based on python packages
- Add installation class for TOSA checker
- Update documentation
- Extend support of the parameter "force" in the
"install" command
Change-Id: I95567b75e1cfe85daa1f1c3d359975bb67b2504e
|
|
* add entry point for mlia-backend in setup.cfg and main.py
* add --force option for install from path: uninstall existing backend
in ML Inference Advisor and install from given path
* add uninstall and list program parameters: uninstall has
backend_name as input arg, install has backend_name as a mandatory argument
* add unit tests in test_cli_commands.py, test_cli_main.py,
test_tools_metadata_common.py, test_tools_metadata_corstone.py
* updated README.md
* remove --download option for installing backend
* add new lines for the display section when we do mlia-backen list
* add case insensitive support for backend names in command line argument
Change-Id: Icb89d8957fa6be4b767710e24fa074f26472674b
|
|
Change-Id: I212c9cad5f2ac28b75b1d9e2fb8f1f8b444b8397
|
|
* Add `api.generate_supported_operators_report` that calls
a report generator based on given target profile.
* Update `--supported-ops-report` cli flag help section and README.md
info by specifying that it is currently only supported for Ethos-U.
* Add tests for `generate_supported_operators_report` method.
* Add stub methods `report` for Cortex-A
and Tosa operators.py module that throw a "Not supported" exception.
Change-Id: Iaf373fe48299d807e48fd6a0e6c029ce32203f4f
|
|
Use "TensorFlow Lite" instead of "TFLite" in
documentation and comments
Change-Id: Ie4450d72fb2e5261d152d72ab8bd94c3da914c46
|
|
- Update configuration for inclusive language linter
- Fix reported issues
Change-Id: If0f8b6e20c17d8ee1c6179c61040fc351437f036
|
|
- Enable deferred annotations evaluation
- Use builtin types for type hints whenever possible
- Use | syntax for union types
- Rename mlia.core._typing into mlia.core.typing
Change-Id: I3f6ffc02fa069c589bdd9e8bddbccd504285427a
|
|
Change-Id: I9dfa9f17a93ac24be0aa9ad68e4a72b79aecfb9d
|
|
Add MLIA codebase including sources and tests.
Change-Id: Id41707559bd721edd114793618d12ccd188d8dbd
|