mlonmcu.models package
Submodules
mlonmcu.models.convert_data module
Utility to convert various types of data into MLonMCU compatible raw binary files.
mlonmcu.models.frontend module
- class mlonmcu.models.frontend.BenchFrontend(name: str, prog_cls: Program, features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.frontend.CmsisDSPFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.CmsisNNFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.CoremarkFrontend(features=None, config=None)[source]
Bases:
SingleBenchFrontend- REQUIRED = {}
- class mlonmcu.models.frontend.CryptoBenchFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.DhrystoneFrontend(features=None, config=None)[source]
Bases:
SingleBenchFrontend- REQUIRED = {}
- class mlonmcu.models.frontend.EmbenchDSPFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- REQUIRED = {'embench_dsp.src_dir'}
- property supported_names
- class mlonmcu.models.frontend.EmbenchFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- REQUIRED = {'embench.src_dir'}
- property supported_names
- class mlonmcu.models.frontend.EmbenchIoTFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- REQUIRED = {'embench_iot.src_dir'}
- property supported_names
- class mlonmcu.models.frontend.ExampleFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.Frontend(name, input_formats=None, output_formats=None, features=None, config=None)[source]
Bases:
ABC- DEFAULTS = {'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'use_inout_data': False}
- FEATURES = {'validate'}
- OPTIONAL = {}
- REQUIRED = {}
- property gen_data
- property gen_data_file
- property gen_data_fill_mode
- property gen_data_fmt
- property gen_data_number
- property gen_ref_data
- property gen_ref_data_file
- property gen_ref_data_fmt
- property gen_ref_data_mode
- property gen_ref_labels
- property gen_ref_labels_file
- property gen_ref_labels_fmt
- property gen_ref_labels_mode
- generate_input_data(input_names, input_types, input_shapes, input_ranges, input_quant_details, in_paths)[source]
- generate_model_info(input_names, output_names, input_shapes, output_shapes, input_types, output_types, input_ranges, output_ranges, input_quant_details, output_quant_details)[source]
- generate_output_ref_data(inputs_data, model, out_paths, output_names, output_types, output_shapes, output_quant_details)[source]
- generate_ref_labels(inputs_data, model, out_labels_paths, output_names, output_types, output_shapes, output_quant_details)[source]
- supports_formats(ins=None, outs=None)[source]
Returs true if the frontend can handle at least one combination of input and output formats.
- property use_inout_data
- class mlonmcu.models.frontend.ISSBenchFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.LayerGenFrontend(features=None, config=None)[source]
Bases:
FrontendExample input: 1,1024 1 fully_connected ,10,relu 1,1024 1 fully_connected ,100,relu 1,1024 1 fully_connected ,2,relu 1,1024 1 fully_connected ,4,relu 1,1024 1 fully_connected ,8,relu 1,1024 1 fully_connected ,16,relu 1,1024 1 fully_connected ,32,relu 1,1024 1 fully_connected ,64,relu 1,1024 1 fully_connected ,128,relu 1,1024 1 fully_connected ,256,relu 1,1024 1 fully_connected ,512,relu
- DEFAULTS = {'fmt': 'tflite', 'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'use_inout_data': False}
- FEATURES = {'validate'}
- REQUIRED = {'layergen.exe'}
- property fmt
- property layergen_exe
- class mlonmcu.models.frontend.MLIRFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.frontend.MathisFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- REQUIRED = {}
- property supported_names
- class mlonmcu.models.frontend.MibenchFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- REQUIRED = {'mibench.src_dir'}
- property supported_names
- class mlonmcu.models.frontend.ONNXFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.frontend.OpenASIPFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.PBFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.frontend.PackedFrontend(features=None, config=None)[source]
Bases:
Frontend- DEFAULTS = {'check': False, 'fake_pack': False, 'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'ignore_existing': True, 'use_inout_data': False, 'use_packed': True}
- FEATURES = {'packed', 'packing', 'validate'}
- REQUIRED = {'packer.exe'}
- property check
- property fake_pack
- property ignore_existing
- property use_packed
- class mlonmcu.models.frontend.PaddleFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.frontend.PolybenchFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- DEFAULTS = {'dataset': 'large', 'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'use_inout_data': False}
- REQUIRED = {'polybench.src_dir'}
- property supported_names
- class mlonmcu.models.frontend.RVVBenchFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.RelayFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend- DEFAULTS = {'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'relayviz_plotter': 'term', 'use_inout_data': False, 'visualize_graph': False}
- FEATURES = {'relayviz', 'validate'}
- REQUIRED = {'tvm.build_dir', 'tvm.pythonpath'}
- property relayviz_plotter
- property tvm_build_dir
- property tvm_pythonpath
- property visualize_graph
- class mlonmcu.models.frontend.SimpleFrontend(name, fmt, features=None, config=None)[source]
Bases:
FrontendAn abstract frontend with equivalent input and output formats.
- class mlonmcu.models.frontend.SingleBenchFrontend(name: str, prog_cls: Program, features=None, config=None)[source]
Bases:
BenchFrontend- property supported_names
- class mlonmcu.models.frontend.TaclebenchFrontend(features=None, config=None)[source]
Bases:
BenchFrontend- REQUIRED = {'taclebench.src_dir'}
- property supported_names
- class mlonmcu.models.frontend.TfLiteFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend- DEFAULTS = {'analyze_enable': False, 'analyze_script': None, 'check_integrity': False, 'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'pack_script': None, 'split_layers': False, 'use_inout_data': False, 'visualize_enable': False, 'visualize_script': None}
- FEATURES = {'gen_data', 'gen_ref_data', 'gen_ref_labels', 'split_layers', 'tflite_analyze', 'validate', 'visualize'}
- OPTIONAL = {'tflite_analyze.script'}
- REQUIRED = {}
- property analyze_enable
- property analyze_script
- property check_integrity
- inference(model: Model, input_data: Dict[str, array], quant=False, dequant=False, verbose=False)[source]
- property pack_script
- property split_layers
- property visualize_enable
- property visualize_script
mlonmcu.models.group module
mlonmcu.models.lookup module
- mlonmcu.models.lookup.list_models(directory, depth=1, formats=None, config=None, ignore_cache: bool = False)[source]
- mlonmcu.models.lookup.lookup_models(names, frontends=None, config=None, context=None, ignore_cache: bool = False)[source]
- mlonmcu.models.lookup.lookup_models_and_groups(directories, formats, config=None, ignore_cache: bool = False)[source]
mlonmcu.models.metadata module
mlonmcu.models.model module
- class mlonmcu.models.model.CmsisDSPProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram- DEFAULTS = {'batch_size': 16, 'number': 10, 'size': 16}
- property batch_size
- property number
- property size
- class mlonmcu.models.model.CmsisNNProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram- DEFAULTS = {'batch_size': 16, 'number': 10, 'size': 16}
- property batch_size
- property number
- property size
- class mlonmcu.models.model.CryptoBenchProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram- DEFAULTS = {'verbose': False}
- property verbose
- class mlonmcu.models.model.EmbenchDSPProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram- DEFAULTS = {'no_snr_check': False}
- property no_snr_check
- class mlonmcu.models.model.EmbenchIoTProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram- DEFAULTS = {'global_scale_factor': 1}
- property global_scale_factor
- class mlonmcu.models.model.EmbenchProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram
- class mlonmcu.models.model.ExampleProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram
- class mlonmcu.models.model.ISSBenchProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram- DEFAULTS = {'array_size': 1048576, 'dtype': 'uint32_t', 'num_iter': 10000000}
- property array_size
- property dtype
- property num_iter
- class mlonmcu.models.model.MathisProgram(name, config=None, alt=None)[source]
Bases:
Program- DEFAULTS = {'size': 1024}
- property size
- class mlonmcu.models.model.MibenchProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram
- class mlonmcu.models.model.Model(name, paths, config=None, alt=None, formats=ModelFormats.TFLITE)[source]
Bases:
Workload- DEFAULTS = {'input_shapes': None, 'input_types': None, 'inputs_path': None, 'metadata_path': 'definition.yml', 'output_labels_path': None, 'output_shapes': None, 'output_types': None, 'outputs_path': None, 'params_path': None, 'support_path': None}
- property input_shapes
- property input_types
- property inputs_path
- property metadata_path
- property output_labels_path
- property output_shapes
- property output_types
- property outputs_path
- property params_path
- property skip_check
- property support_path
- class mlonmcu.models.model.ModelFormat(value, extensions)
Bases:
tuple- extensions
Alias for field number 1
- value
Alias for field number 0
- class mlonmcu.models.model.ModelFormats(value)[source]
Bases:
Enum- IPYNB = (3, ['ipynb'])
- MLIR = (9, ['mlir'])
- NONE = (0, [])
- ONNX = (4, ['onnx'])
- PACKED = (2, ['tflm'])
- PADDLE = (7, ['pdmodel'])
- PB = (6, ['pb'])
- RELAY = (5, ['relay'])
- SAVED_MODEL = (9, [''])
- TEXT = (8, ['txt'])
- TFLITE = (1, ['tflite'])
- property extension
- property extensions
- class mlonmcu.models.model.MultiBenchProgram(name: str, prefix: str, config=None, alt=None)[source]
Bases:
Program
- class mlonmcu.models.model.OpenASIPProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram- DEFAULTS = {'crc_mode': 'both'}
- property crc_mode
- class mlonmcu.models.model.PolybenchProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram
- class mlonmcu.models.model.RVVBenchProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram
- class mlonmcu.models.model.TaclebenchProgram(name: str, config=None, alt=None)[source]
Bases:
MultiBenchProgram
- class mlonmcu.models.model.Workload(name, config=None, alt=None)[source]
Bases:
object- DEFAULTS = {}
- mlonmcu.models.model.parse_shape_string(inputs_string)[source]
Parse an input shape dictionary string to a usable dictionary.
Taken from: https://github.com/apache/tvm/blob/main/python/tvm/driver/tvmc/shape_parser.py
- Parameters:
- inputs_string: str
A string of the form “input_name:[dim1,dim2,…,dimn] input_name2:[dim1,dim2]” that indicates the desired shape for specific model inputs. Colons, forward slashes and dots within input_names are supported. Spaces are supported inside of dimension arrays.
- Returns
- ——-
- shape_dict: dict
A dictionary mapping input names to their shape for use in relay frontend converters.
- mlonmcu.models.model.parse_type_string(inputs_string)[source]
Parse an input type dictionary string to a usable dictionary.
- Parameters:
- inputs_string: str
A string of the form “input_name:ty input_name2:ty” that indicates the desired type for specific model inputs/outputs. Colons, forward slashes and dots within input_names are supported. Spaces are supported inside of dimension arrays.
- Returns
- ——-
- type_dict: dict
A dictionary mapping input names to their type.
mlonmcu.models.options module
- class mlonmcu.models.options.BackendModelOptions(backend, supported=True, options={})[source]
Bases:
object
- class mlonmcu.models.options.TFLMIModelOptions(backend, supported=True, arena_size=None, builtin_ops=None, custom_ops=None)[source]
Bases:
BackendModelOptions
- class mlonmcu.models.options.TVMRTModelOptions(backend, supported=True, arena_size=None)[source]
Bases:
BackendModelOptions
mlonmcu.models.utils module
Module contents
- class mlonmcu.models.LayerGenFrontend(features=None, config=None)[source]
Bases:
FrontendExample input: 1,1024 1 fully_connected ,10,relu 1,1024 1 fully_connected ,100,relu 1,1024 1 fully_connected ,2,relu 1,1024 1 fully_connected ,4,relu 1,1024 1 fully_connected ,8,relu 1,1024 1 fully_connected ,16,relu 1,1024 1 fully_connected ,32,relu 1,1024 1 fully_connected ,64,relu 1,1024 1 fully_connected ,128,relu 1,1024 1 fully_connected ,256,relu 1,1024 1 fully_connected ,512,relu
- DEFAULTS = {'fmt': 'tflite', 'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'use_inout_data': False}
- FEATURES = {'validate'}
- REQUIRED = {'layergen.exe'}
- property fmt
- property layergen_exe
- class mlonmcu.models.MLIRFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.ONNXFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.PBFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend
- class mlonmcu.models.PackedFrontend(features=None, config=None)[source]
Bases:
Frontend- DEFAULTS = {'check': False, 'fake_pack': False, 'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'ignore_existing': True, 'use_inout_data': False, 'use_packed': True}
- FEATURES = {'packed', 'packing', 'validate'}
- REQUIRED = {'packer.exe'}
- property check
- property fake_pack
- property ignore_existing
- property use_packed
- class mlonmcu.models.TfLiteFrontend(features=None, config=None)[source]
Bases:
SimpleFrontend- DEFAULTS = {'analyze_enable': False, 'analyze_script': None, 'check_integrity': False, 'gen_data': False, 'gen_data_file': None, 'gen_data_fill_mode': None, 'gen_data_fmt': None, 'gen_data_number': None, 'gen_ref_data': False, 'gen_ref_data_file': None, 'gen_ref_data_fmt': None, 'gen_ref_data_mode': None, 'gen_ref_labels': False, 'gen_ref_labels_file': None, 'gen_ref_labels_fmt': None, 'gen_ref_labels_mode': None, 'pack_script': None, 'split_layers': False, 'use_inout_data': False, 'visualize_enable': False, 'visualize_script': None}
- FEATURES = {'gen_data', 'gen_ref_data', 'gen_ref_labels', 'split_layers', 'tflite_analyze', 'validate', 'visualize'}
- OPTIONAL = {'tflite_analyze.script'}
- REQUIRED = {}
- property analyze_enable
- property analyze_script
- property check_integrity
- inference(model: Model, input_data: Dict[str, array], quant=False, dequant=False, verbose=False)[source]
- property pack_script
- property split_layers
- property visualize_enable
- property visualize_script