tum-ei-eda / mlonmcu

Tool for the deployment and analysis of TinyML applications on TFLM and MicroTVM backends
Apache License 2.0
29 stars 12 forks source link

Implement missing subcommands #22

Closed PhilippvK closed 2 years ago

PhilippvK commented 2 years ago

There are at least 2 mlonmcu subcommands for the command line I would like to support in the feature:

An optional one would be mlonmcu activate which would (automatically) look for an MLonMCU environment and export the MLONMCU_HOME environment var inside the current shell. (Inspired by conda activate)

PhilippvK commented 2 years ago

Some motivation for mlonmcu export:

Run artifacts can be typically found in $MLONMCU_HOME/temp/sessions/{SESSION_ID}/runs/{RUN_ID} which makes them hard to access. There are also symlinks to the latest run/session which at least make it possible to get the latest artifacts.

An mlonmcu export command would allow to export specific runs or complete sessions to a directory or archive.

Examples:

mlonmcu export --session 0 --run 0 run.zip  # Export run 0 from session 0 to a zip archive 
mlonmcu export --session 1 session.zip  # Export every run of session 1 to a zip archive
mlonmcu export session/  # Export the latest session to a directory
PhilippvK commented 2 years ago

Some motivation for mlonmcu cleanup:

Currently old sessions/runs are not removed automatically. It is possible to put them in /tmp/ by modifying the temp path specified in environments.yml. I would like to add a command which allows to cleanup old artifacts and eventually even the deps directory.

As this process removes contents from the disk it will by default require an interactive confirmation by the user.

Examples:

mlonmcu cleanup  # Interactively clean sessions
mlonmcu cleanup --force  # Clean all sessions
mlonmcu cleanup --keep 10 --force  # Keep only the latest 10 sessions
mlonmcu cleanup --dependencies  # Remove every installed dependency