TEXAS INSTRUMENTS
ModelZoo · Config YAML
How to Create a ModelZoo Config YAML
Every example in examples/ follows the same 6-section skeleton
common: # WHAT task, WHICH device task_type: generic_timeseries_classification target_device: F28P55 # F28P55, MSPM0G5187, CC2755, ... dataset: # WHERE the data is dataset_name: my_dataset input_data_path: <URL | .zip | local folder> data_processing_feature_extraction: # HOW signal becomes input feature_extraction_name: Generic_1024Input_FFTBIN_64Feature_8Frame variables: 1 # no. of input channels training: # WHICH model, HOW to train model_name: CLS_1k_NPU # from ModelZoo batch_size: 256 training_epochs: 20 quantization: 2 # 0 float, 1 generic INT, 2 TI-NPU INT testing: {} # {} = use defaults compilation: {} # {} = default_preset
4-Step Recipe
1 · Copy the closest example
Use the use-case folder if one matches (e.g. motor_bearing_fault). Otherwise use generic_timeseries_<task>.
2 · Set common
Pick task_type and target_device. Device variants exist: config_MSPM0.yaml, config_CC2755.yaml, ...
3 · Point dataset at your data
Set input_data_path (URL, .zip or local folder) and match variables to your input channels.
4 · Pick features + model, then run
./run_tinyml_modelzoo.sh examples/<name>/config.yaml
Tip: any key you leave out uses its default, so testing: {} and compilation: {} are valid as written.
ModelZoo · Config YAML
Feature Extraction: Preset vs. Custom
The data_processing_feature_extraction section decides how raw signals become model input
ApproachWhenExample keys
Preset Classification, audio, image feature_extraction_name: Generic_512Input_FFTBIN_32Feature_8Frame
Custom transforms Fine-tuning a preset frame_size, feature_size_per_frame, num_frame_concat, feat_ext_transform: [FFT_FE, FFT_POS_HALF, DC_REMOVE, ABS, BINNING, LOG_DB, CONCAT]
Windowing only Regression, forecasting, anomaly detection data_proc_transforms: [SimpleWindow, Downsample], frame_size, stride_size, sampling_rate, new_sr
How the task type changes the config
Forecasting: SimpleWindow is mandatory; add forecast_horizon and target_variables.
Anomaly detection: split_factor: [0.5, 0.1, 0.4] and an AD_* model.
Regression: usually SimpleWindow only, with a REGR_* model.
Image: target_module: vision with a preset such as Mnist_Default.
Selecting input channels with variables
variables: 3 # first N columns variables: [0, 2, 4] # column indices variables: ['accel_x', 'accel_y'] # names (CSV header)
Column indices are 0-indexed, counted after time columns are removed.
ModelZoo · Config YAML
Useful Knobs
Optional keys you will reach for most often. Omit them to keep the defaults
training
early_stopping, early_stopping_patience: stop when validation stops improving
optimizer (e.g. adam), lr_scheduler (e.g. cosineannealinglr)
learning_rate: initial learning rate
num_gpus: 0 for CPU training
training · quantization
quantization: 0 float · 1 generic integer · 2 TI-NPU integer
quantization_method: QAT (quantization-aware training) or PTQ (post-training)
quantization_weight_bitwidth: 8 | 4 | 2 · quantization_activation_bitwidth: 8
auto_quantization: automatically select per-layer precision
compilation
compile_preset_name:
any device default_preset
NPU only compress_npu_layer_data, forced_soft_npu_preset
See docs/NPU_CONFIGURATION_GUIDELINES.md for NPU-friendly models
common · output
projects_path: where artifacts are written
Default: ./data/projects/<project_name>/, relative to the directory you run from
run_name: run sub-folder, e.g. '{date-time}/{model_name}'
ModelZoo · Config YAML
Common Pitfalls
Three things to check before you run a modified config
Inconsistent indentation
What: examples use either 2-space indents with bare values or 4-space indents with quoted values.
Why it matters: both are valid YAML, but keys that are not aligned within one file break parsing.
Fix: pick one style per file and keep every key under a section at the same indent.
variables mismatch
What: variables does not match the number of channels in your CSV files.
Why it matters: a common source of errors when moving from an example dataset to your own.
Fix: count channels after time columns are removed, or list indices / column names explicitly.
NPU-only compile presets
What: compress_npu_layer_data and forced_soft_npu_preset are set for a device without an NPU.
Why it matters: these presets apply only to TinyEngine NPU devices (e.g. F28P55, MSPM0G5187, AM13E2).
Fix: use default_preset, or leave compilation: {}.
Full reference: tinyml-modelzoo/docs/CONFIG_YAML_GUIDE.md
Adithya Thonse · October 2026