TI Tiny ML ModelZoo
v1.5.0

Contents

  • 1. Introduction
    • 1.1. What is Tiny ML ModelZoo?
      • 1.1.1. Overview
      • 1.1.2. Target Applications
      • 1.1.3. Key Capabilities
      • 1.1.4. What’s New in 1.5.0
      • 1.1.5. Repository Structure
      • 1.1.6. Workflow Summary
      • 1.1.7. Next Steps
    • 1.2. System Architecture
      • 1.2.1. High-Level Architecture
      • 1.2.2. Packages and How They Are Delivered
      • 1.2.3. Component Details
        • 1.2.3.1. tinyml-modelzoo
        • 1.2.3.2. tinyml_modelmaker
        • 1.2.3.3. tinyml_tinyverse
        • 1.2.3.4. tinyml_torchmodelopt
      • 1.2.4. Which Install Do I Need?
      • 1.2.5. Data Flow
      • 1.2.6. Configuration System
      • 1.2.7. Integration Points
    • 1.3. Terminology
      • 1.3.1. General ML Terms
      • 1.3.2. Tiny ML ModelZoo Terms
      • 1.3.3. Device and Hardware Terms
      • 1.3.4. Configuration Terms
      • 1.3.5. Model Size Conventions
      • 1.3.6. Abbreviations
    • 1.4. Overview
  • 2. Installation
    • 2.1. Prerequisites
      • 2.1.1. System Requirements
      • 2.1.2. Python
      • 2.1.3. pip and Git
      • 2.1.4. TI Compiler Tools (for compilation)
      • 2.1.5. Verification Checklist
    • 2.2. Wheel Installation
      • 2.2.1. Quick Install
      • 2.2.2. What Is in the Wheel
      • 2.2.3. Running with the Wheel Install
      • 2.2.4. Verifying Installation
      • 2.2.5. Updating and Uninstalling
      • 2.2.6. Limitations of the Wheel Install
      • 2.2.7. Troubleshooting
      • 2.2.8. Next Steps
    • 2.3. Clone Installation
      • 2.3.1. Step 1: Clone the Repository
      • 2.3.2. Step 2: Create a Virtual Environment and Install
      • 2.3.3. Step 3: Verify Installation
      • 2.3.4. Step 4: Configure the Compiler
      • 2.3.5. Step 5: Run the Hello World Example
      • 2.3.6. Folder Layout
      • 2.3.7. Common Developer Tasks
      • 2.3.8. Updating
      • 2.3.9. Troubleshooting
      • 2.3.10. Next Steps
    • 2.4. Windows Setup
      • 2.4.1. Native Windows
      • 2.4.2. WSL2
        • 2.4.2.1. Behind a Proxy (WSL)
      • 2.4.3. Common Windows Issues
      • 2.4.4. Next Steps
    • 2.5. Linux Setup
      • 2.5.1. System Preparation
      • 2.5.2. Install Python 3.10
      • 2.5.3. Installation
      • 2.5.4. Verification
      • 2.5.5. GPU Setup (Optional)
      • 2.5.6. Shell Configuration
      • 2.5.7. Troubleshooting
      • 2.5.8. Next Steps
    • 2.6. macOS Setup
      • 2.6.1. Supported Hardware
      • 2.6.2. Prerequisites
      • 2.6.3. Installation
      • 2.6.4. Using the Apple GPU (MPS)
      • 2.6.5. Notes
      • 2.6.6. Next Steps
    • 2.7. Environment Variables
      • 2.7.1. How the Paths Are Resolved
      • 2.7.2. Which Variable for Which Device
      • 2.7.3. Setting Variables
      • 2.7.4. Installing the Compilers
      • 2.7.5. Verifying
      • 2.7.6. Troubleshooting
      • 2.7.7. Next Steps
    • 2.8. Agent Skill (Claude Code)
    • 2.9. Which Install Should I Choose?
    • 2.10. Quick Start
  • 3. Getting Started
    • 3.1. Quickstart
      • 3.1.1. Prerequisites
      • 3.1.2. Step 1: Get the Example Config
      • 3.1.3. Step 2: Run Hello World
      • 3.1.4. Step 3: View Results
      • 3.1.5. Step 4: Read the Config
      • 3.1.6. Step 5: Try Another Example
      • 3.1.7. Next Steps
    • 3.2. First Example
      • 3.2.1. Overview
      • 3.2.2. Step 1: The Configuration
      • 3.2.3. Step 2: Run
      • 3.2.4. Step 3: Read the Training Log
      • 3.2.5. Step 4: Examine the Output Folder
      • 3.2.6. Step 5: Customize
      • 3.2.7. Next Steps
    • 3.3. Running Examples
      • 3.3.1. Finding Examples
      • 3.3.2. The Three Run Scripts
      • 3.3.3. Reading an Example Config
      • 3.3.4. Customizing
      • 3.3.5. Output Location
      • 3.3.6. Troubleshooting
      • 3.3.7. Next Steps
    • 3.4. Understanding Config
      • 3.4.1. Minimal Config
      • 3.4.2. Common Keys
      • 3.4.3. Next Steps
    • 3.5. How to Create a ModelZoo Config YAML
      • 3.5.1. 1. Config Skeleton and 4-Step Recipe
        • 3.5.1.1. 4-Step Recipe
      • 3.5.2. 2. Feature Extraction: Preset vs. Custom
        • 3.5.2.1. Preset example (classification)
        • 3.5.2.2. Custom transforms example
        • 3.5.2.3. Windowing-only example (anomaly detection)
        • 3.5.2.4. How the task type changes the config
        • 3.5.2.5. Selecting input channels with variables
      • 3.5.3. 3. Useful Knobs
        • 3.5.3.1. Training
        • 3.5.3.2. Quantization
        • 3.5.3.3. Compilation
        • 3.5.3.4. Output location
      • 3.5.4. Common Pitfalls
    • 3.6. Understanding the Run Output
      • 3.6.1. What a Run Produces
      • 3.6.2. Float vs. Quantized Model
      • 3.6.3. Golden Vectors: user_input_config.h
      • 3.6.4. Golden Vectors: test_vector.c
      • 3.6.5. PCA Graphs: Are Your Features Separable?
      • 3.6.6. Post-Training Analysis: Classification
      • 3.6.7. Post-Training Analysis: Other Tasks
      • 3.6.8. Compilation Output: What Goes on the Device
      • 3.6.9. Next Step
    • 3.7. 5-Minute Quickstart
  • 4. Supported Task Types
    • 4.1. Time Series Classification
      • 4.1.1. Overview
      • 4.1.2. Configuration
      • 4.1.3. Dataset Format
      • 4.1.4. Task Types and Related Settings
      • 4.1.5. Available Models
      • 4.1.6. Feature Extraction
      • 4.1.7. Metrics
      • 4.1.8. Example: Arc Fault Detection
      • 4.1.9. Tips
      • 4.1.10. See Also
    • 4.2. Time Series Regression
      • 4.2.1. Overview
      • 4.2.2. Configuration
      • 4.2.3. Dataset Format
      • 4.2.4. Task Settings
      • 4.2.5. Available Models
      • 4.2.6. Key Configuration
      • 4.2.7. Metrics
      • 4.2.8. Tips
      • 4.2.9. See Also
    • 4.3. Time Series Forecasting
      • 4.3.1. Overview
      • 4.3.2. Configuration
      • 4.3.3. Key Parameters
      • 4.3.4. Dataset Format
      • 4.3.5. Task Settings
      • 4.3.6. Available Models
      • 4.3.7. Windowing Example
      • 4.3.8. Metrics
      • 4.3.9. Example: PMSM Temperature Forecasting
      • 4.3.10. Important Notes
      • 4.3.11. Tips
      • 4.3.12. See Also
    • 4.4. Anomaly Detection
      • 4.4.1. Overview
      • 4.4.2. How It Works
      • 4.4.3. Autoencoder Architecture
        • 4.4.3.1. What is an Autoencoder?
        • 4.4.3.2. Architecture Diagram
        • 4.4.3.3. Dimensionality Flow
        • 4.4.3.4. Key Components
        • 4.4.3.5. Training with MSE Loss
        • 4.4.3.6. Semi-Supervised Learning: Normal Data Only
        • 4.4.3.7. Advantages and Limitations
      • 4.4.4. Configuration
        • 4.4.4.1. New in 1.5.0: NPU quantization
      • 4.4.5. Dataset Format
      • 4.4.6. Available Models
      • 4.4.7. Training Workflow
        • 4.4.7.1. Overview
        • 4.4.7.2. Pipeline Steps in Detail
        • 4.4.7.3. Running the Pipeline
        • 4.4.7.4. Output Files
        • 4.4.7.5. Understanding Training Logs
      • 4.4.8. Threshold Selection
        • 4.4.8.1. Formula
        • 4.4.8.2. k-Value Impact
        • 4.4.8.3. threshold_performance.csv
        • 4.4.8.4. How to Choose k Based on Application
      • 4.4.9. Evaluation Metrics
        • 4.4.9.1. Confusion Matrix
        • 4.4.9.2. Metric Definitions
        • 4.4.9.3. Metric Summary
      • 4.4.10. What If You Don’t Have Anomaly Data?
        • 4.4.10.1. What You CAN Do
        • 4.4.10.2. What You CANNOT Do
      • 4.4.11. Semi-Supervised vs Supervised
      • 4.4.12. Example: Motor Bearing Anomaly
      • 4.4.13. Tips
      • 4.4.14. See Also
    • 4.5. Image Classification
      • 4.5.1. Overview
      • 4.5.2. Task Settings
      • 4.5.3. Configuration
      • 4.5.4. Dataset Format
      • 4.5.5. Feature Extraction Presets
      • 4.5.6. Available Models
      • 4.5.7. Current Limitations
      • 4.5.8. Examples
      • 4.5.9. Preparing Image Data
      • 4.5.10. Tips
      • 4.5.11. See Also
    • 4.6. Audio Classification
      • 4.6.1. Overview
      • 4.6.2. Task Settings
      • 4.6.3. Configuration
      • 4.6.4. Dataset Format
      • 4.6.5. Feature Extraction Presets
      • 4.6.6. Available Models
      • 4.6.7. Metrics
      • 4.6.8. Tips
      • 4.6.9. See Also
    • 4.7. Radar Classification
      • 4.7.1. Overview
      • 4.7.2. Task Settings
      • 4.7.3. Configuration
      • 4.7.4. Dataset Format
      • 4.7.5. Available Models
      • 4.7.6. Metrics
      • 4.7.7. Tips
      • 4.7.8. See Also
    • 4.8. Task Overview
    • 4.9. Task Type Strings and Modules
    • 4.10. Choosing the Right Task
  • 5. Bring Your Own Data
    • 5.1. Classification Dataset Format
      • 5.1.1. Directory Structure
      • 5.1.2. Data File Format
      • 5.1.3. Supported File Types
      • 5.1.4. Annotations (Optional)
      • 5.1.5. Configuration
      • 5.1.6. Dataset Splitting Modes
      • 5.1.7. Example: 3-Class Vibration Data
      • 5.1.8. Class Balancing
      • 5.1.9. Common Issues
      • 5.1.10. Key Differences: Classification vs Regression vs Forecasting
    • 5.2. Regression Dataset Format
      • 5.2.1. Directory Structure
      • 5.2.2. Data File Format
      • 5.2.3. Time Column Handling
      • 5.2.4. Annotation Files (Optional)
      • 5.2.5. Configuration
      • 5.2.6. Target Processing
      • 5.2.7. Complete Example
      • 5.2.8. Troubleshooting
      • 5.2.9. Best Practices
      • 5.2.10. Common Issues
      • 5.2.11. See Also
    • 5.3. Forecasting Dataset Format
      • 5.3.1. Directory Structure
      • 5.3.2. Data File Format
      • 5.3.3. Key Difference from Regression
      • 5.3.4. Configuration
      • 5.3.5. Variable Specification Options
      • 5.3.6. Windowing Behavior
      • 5.3.7. Complete Example
      • 5.3.8. Important Notes
      • 5.3.9. Minimum Data Requirements
      • 5.3.10. Common Issues
      • 5.3.11. Annotations and Splits
      • 5.3.12. See Also
    • 5.4. Anomaly Detection Dataset Format
      • 5.4.1. Folder Structure
      • 5.4.2. Concrete Example
      • 5.4.3. Data Splitting Strategy
      • 5.4.4. What If You Don’t Have Anomaly Data?
      • 5.4.5. Datafile Format (CSV)
      • 5.4.6. See Also
    • 5.5. Audio and Radar Dataset Format
      • 5.5.1. Audio Classification
        • 5.5.1.1. Directory structure
        • 5.5.1.2. Preparing public datasets
        • 5.5.1.3. Config
      • 5.5.2. Radar Classification
        • 5.5.2.1. Directory structure
        • 5.5.2.2. Preparing the public dataset
        • 5.5.2.3. Config
      • 5.5.3. See Also
    • 5.6. Data Splitting
      • 5.6.1. Split Methods
      • 5.6.2. Configuration
      • 5.6.3. Annotation File Format
      • 5.6.4. Split Examples
      • 5.6.5. When to Use Each Method
      • 5.6.6. Best Practices
      • 5.6.7. Creating Annotation Files
      • 5.6.8. Verifying Splits
      • 5.6.9. See Also
    • 5.7. Dataset Format Overview
    • 5.8. Supported File Formats
    • 5.9. Data Sources
  • 6. Supported Devices
    • 6.1. Device Overview
      • 6.1.1. Selecting the Device
      • 6.1.2. Complete Device List
        • 6.1.2.1. C2000 F28x (C28x DSP)
        • 6.1.2.2. C2000 F29x (C29x DSP)
        • 6.1.2.3. Arm Cortex-M0+, Cortex-M33 and Cortex-R5F MCUs
        • 6.1.2.4. Connectivity and Radar Devices
      • 6.1.3. Compilation Presets
      • 6.1.4. NPU and Non-NPU Devices
      • 6.1.5. Feature-Extraction Memory Estimation
      • 6.1.6. Choosing a Device
    • 6.2. NPU Guidelines
      • 6.2.1. NPU Devices
      • 6.2.2. How a Model Runs on the NPU
      • 6.2.3. Key Layer Rules
      • 6.2.4. Troubleshooting
    • 6.3. NPU Configuration Guidelines for TI Neural Network Compiler
      • 6.3.1. Table of Contents
      • 6.3.2. Overview
      • 6.3.3. Supported Layer Types
      • 6.3.4. Terminology and Notation
        • 6.3.4.1. Dimension Notation
        • 6.3.4.2. Value Notation
      • 6.3.5. Layer Configuration Constraints
        • 6.3.5.1. FCONV (First Convolution Layer)
        • 6.3.5.2. GCONV (Generic Convolution Layer)
        • 6.3.5.3. DWCONV (Depth-Wise Convolution Layer)
        • 6.3.5.4. PWCONV (Point-Wise Convolution Layer)
        • 6.3.5.5. FC (Fully-Connected Layer)
        • 6.3.5.6. MAXPOOL (Max Pooling Layer)
        • 6.3.5.7. AVGPOOL (Average Pooling Layer)
      • 6.3.6. Optimal Design Patterns
        • 6.3.6.1. Pattern 1: MobileNet-Style Depthwise Separable Convolution
        • 6.3.6.2. Pattern 2: Channel Doubling Progression
        • 6.3.6.3. Pattern 3: Replace Large Kernels with Multiple Small Kernels
        • 6.3.6.4. Pattern 4: Ensure Sufficient FC Input
      • 6.3.7. Common Pitfalls to Avoid
        • 6.3.7.1. 1. Asymmetric Kernel Constraints (Not Both Dimensions Large)
        • 6.3.7.2. 2. Non-m4 Channel Counts
        • 6.3.7.3. 3. Insufficient FC Input Features
        • 6.3.7.4. 4. MaxPool with Both Dimensions > 4
      • 6.3.8. Model Design Checklist
        • 6.3.8.1. Channel Dimensions
        • 6.3.8.2. Kernel Sizes
        • 6.3.8.3. Fully-Connected Layers
        • 6.3.8.4. Pooling
        • 6.3.8.5. Depthwise Convolutions
        • 6.3.8.6. General
      • 6.3.9. Quick Reference Card
      • 6.3.10. References
    • 6.4. C2000 Family
      • 6.4.1. F28x Devices (C28x)
        • 6.4.1.1. New in 1.5.0 for F28x
        • 6.4.1.2. F28P55 (NPU)
        • 6.4.1.3. Other F28x Devices
      • 6.4.2. F29x Devices (C29x)
      • 6.4.3. SDKs and Tools
      • 6.4.4. Typical Applications
      • 6.4.5. Next Steps
    • 6.5. MSPM0 Family
      • 6.5.1. Supported Devices
      • 6.5.2. MSPM0G5187 (NPU)
      • 6.5.3. MSPM0G3507 and MSPM0G3519
      • 6.5.4. Running on the Board
      • 6.5.5. Next Steps
    • 6.6. Connectivity, AM26x, MSPM33 and Radar Devices
      • 6.6.1. Connectivity Devices (CC)
      • 6.6.2. AM26x (AM263, AM263P, AM261)
      • 6.6.3. MSPM33C (MSPM33C32, MSPM33C34)
      • 6.6.4. IWRL6432 (Radar)
      • 6.6.5. Where to Go Next
    • 6.7. Device Families at a Glance
    • 6.8. What’s New for Devices in 1.5.0
    • 6.9. Where to Go Next
  • 7. Examples & Applications
    • 7.1. Running an Example
    • 7.2. Generic Examples (Start Here)
    • 7.3. Timeseries Classification
    • 7.4. Timeseries Regression
    • 7.5. Timeseries Forecasting
    • 7.6. Anomaly Detection
    • 7.7. Audio Classification
    • 7.8. Image Classification
    • 7.9. Radar
      • 7.9.1. Generic Time Series Classification
        • 7.9.1.1. Overview
        • 7.9.1.2. Available Configurations
        • 7.9.1.3. Running the Example
        • 7.9.1.4. Dataset Format
        • 7.9.1.5. Configuration (config.yaml)
        • 7.9.1.6. Output Location
        • 7.9.1.7. Expected Results
        • 7.9.1.8. Variations to Try
        • 7.9.1.9. Next Steps
      • 7.9.2. Generic Timeseries Regression
        • 7.9.2.1. Overview
        • 7.9.2.2. The Dataset
        • 7.9.2.3. Dataset Format
        • 7.9.2.4. Running the Example
        • 7.9.2.5. Configuration
        • 7.9.2.6. Evaluation Metrics
        • 7.9.2.7. Results
        • 7.9.2.8. Output Location
        • 7.9.2.9. Running on Device
        • 7.9.2.10. Next Steps
      • 7.9.3. Generic Timeseries Forecasting
        • 7.9.3.1. Overview
        • 7.9.3.2. The Dataset
        • 7.9.3.3. Dataset Format
        • 7.9.3.4. Running the Example
        • 7.9.3.5. Configuration
        • 7.9.3.6. Evaluation Metrics
        • 7.9.3.7. Results
        • 7.9.3.8. Output Location
        • 7.9.3.9. Running on Device
        • 7.9.3.10. Next Steps
      • 7.9.4. Generic Timeseries Anomaly Detection
        • 7.9.4.1. Overview
        • 7.9.4.2. The Dataset
        • 7.9.4.3. Dataset Format and Splitting
        • 7.9.4.4. Why Frame Size Matters
        • 7.9.4.5. Running the Example
        • 7.9.4.6. Configuration
        • 7.9.4.7. How It Works
        • 7.9.4.8. Results
        • 7.9.4.9. Output Location
        • 7.9.4.10. Running on Device
        • 7.9.4.11. Next Steps
      • 7.9.5. DC Arc Fault Detection
        • 7.9.5.1. Overview
        • 7.9.5.2. Why Arc Fault Detection?
        • 7.9.5.3. Available Configurations
        • 7.9.5.4. Running the Example
        • 7.9.5.5. Configuration (config_dsk.yaml)
        • 7.9.5.6. Configuration for the DSI Dataset
        • 7.9.5.7. Available Models
        • 7.9.5.8. Results from the 1.5.0 Test Run
        • 7.9.5.9. Interpreting Results
        • 7.9.5.10. Deployment Considerations
        • 7.9.5.11. Next Steps
      • 7.9.6. AC Arc Fault
        • 7.9.6.1. Overview
        • 7.9.6.2. Why AC Arc Fault Detection?
        • 7.9.6.3. System Components
        • 7.9.6.4. Running the Example
        • 7.9.6.5. Configuration
        • 7.9.6.6. Dataset
        • 7.9.6.7. Feature Extraction
        • 7.9.6.8. Models
        • 7.9.6.9. Results
        • 7.9.6.10. Training and Deployment Flow
        • 7.9.6.11. References
      • 7.9.7. Motor Bearing Fault
        • 7.9.7.1. Overview
        • 7.9.7.2. Fault Classes
        • 7.9.7.3. Available Configurations
        • 7.9.7.4. Running the Example
        • 7.9.7.5. Configuration (config.yaml)
        • 7.9.7.6. Models
        • 7.9.7.7. Results from the 1.5.0 Test Run
        • 7.9.7.8. Multi-Class Evaluation
        • 7.9.7.9. Dataset Quality Analysis
        • 7.9.7.10. Anomaly Detection Variant
        • 7.9.7.11. Practical Considerations
        • 7.9.7.12. Next Steps
      • 7.9.8. Blower Imbalance
        • 7.9.8.1. Overview
        • 7.9.8.2. Running the Example
        • 7.9.8.3. Configuration
        • 7.9.8.4. Models
        • 7.9.8.5. Results from the 1.5.0 Test Run
        • 7.9.8.6. See Also
      • 7.9.9. Fan Blade Fault Classification
        • 7.9.9.1. Overview
        • 7.9.9.2. Demo Setup
        • 7.9.9.3. Fault Types
        • 7.9.9.4. Available Configurations
        • 7.9.9.5. Running the Example
        • 7.9.9.6. Configuration (config.yaml)
        • 7.9.9.7. Collecting Your Own Data
        • 7.9.9.8. Results
        • 7.9.9.9. Deploying and Live Preview
        • 7.9.9.10. Anomaly Detection Variant
        • 7.9.9.11. See Also
      • 7.9.10. Electrical Fault
        • 7.9.10.1. Overview
        • 7.9.10.2. Dataset Variants
        • 7.9.10.3. Available Configurations
        • 7.9.10.4. Running the Example
        • 7.9.10.5. Configuration (config.yaml)
        • 7.9.10.6. Multicollinearity and Feature Extraction
        • 7.9.10.7. Results from the 1.5.0 Test Run
        • 7.9.10.8. See Also
      • 7.9.11. Grid Stability
        • 7.9.11.1. Overview
        • 7.9.11.2. Preparing the Dataset
        • 7.9.11.3. Running the Example
        • 7.9.11.4. Configuration
        • 7.9.11.5. Understanding the Outputs
        • 7.9.11.6. Results from the 1.5.0 Test Run
        • 7.9.11.7. See Also
      • 7.9.12. Grid Fault Detection
        • 7.9.12.1. Overview
        • 7.9.12.2. Running the Example
        • 7.9.12.3. Configuration
        • 7.9.12.4. Dataset and Feature Extraction
        • 7.9.12.5. Results
        • 7.9.12.6. Deployment
        • 7.9.12.7. See Also
      • 7.9.13. Gas Sensor
        • 7.9.13.1. Overview
        • 7.9.13.2. Preparing the Dataset
        • 7.9.13.3. Running the Example
        • 7.9.13.4. Configuration
        • 7.9.13.5. Quantized vs. Dequantized Output (output_int)
        • 7.9.13.6. Performance on Device
        • 7.9.13.7. Results from the 1.5.0 Test Run
        • 7.9.13.8. See Also
      • 7.9.14. Human Activity Recognition
        • 7.9.14.1. Overview
        • 7.9.14.2. Running the Example
        • 7.9.14.3. Configuration
        • 7.9.14.4. Preparing the WISDM Dataset
        • 7.9.14.5. The CLS_ResCat_3k Model
        • 7.9.14.6. Comparison of Models
        • 7.9.14.7. See Also
      • 7.9.15. ECG Classification
        • 7.9.15.1. Overview
        • 7.9.15.2. System Components
        • 7.9.15.3. Available Configurations
        • 7.9.15.4. Running the Example
        • 7.9.15.5. Dataset (MSPM0 config)
        • 7.9.15.6. Feature Extraction
        • 7.9.15.7. Model and Training (MSPM0 config)
        • 7.9.15.8. Results
        • 7.9.15.9. Anomaly Detection Mode
        • 7.9.15.10. References
      • 7.9.16. NILM Appliance Usage Classification
        • 7.9.16.1. Overview
        • 7.9.16.2. Running the Examples
        • 7.9.16.3. Appliance Usage Classification (ESDA NILM 2021)
        • 7.9.16.4. PLAID Appliance Identification
        • 7.9.16.5. Results
        • 7.9.16.6. On-Device Results and Performance
        • 7.9.16.7. See Also
      • 7.9.17. PIR Detection
        • 7.9.17.1. Overview
        • 7.9.17.2. System Components
        • 7.9.17.3. Available Configurations
        • 7.9.17.4. Running the Example
        • 7.9.17.5. Dataset
        • 7.9.17.6. Feature Extraction Pipeline
        • 7.9.17.7. Configuration (config_MSPM0.yaml)
        • 7.9.17.8. Results
        • 7.9.17.9. References
      • 7.9.18. Gearbox Fault Detection
        • 7.9.18.1. Overview
        • 7.9.18.2. System Components
        • 7.9.18.3. Dataset
        • 7.9.18.4. Feature Extraction
        • 7.9.18.5. Models
        • 7.9.18.6. Configuration
        • 7.9.18.7. Running the Example
        • 7.9.18.8. Results
        • 7.9.18.9. See Also
      • 7.9.19. Human Fall Detection
        • 7.9.19.1. Overview
        • 7.9.19.2. System Components
        • 7.9.19.3. Running the Example
        • 7.9.19.4. Configuration
        • 7.9.19.5. Dataset
        • 7.9.19.6. Feature Extraction
        • 7.9.19.7. Model and Results
        • 7.9.19.8. Practical Considerations
        • 7.9.19.9. Deployment
        • 7.9.19.10. See Also
      • 7.9.20. Dynamic Hand Gesture Recognition
        • 7.9.20.1. Overview
        • 7.9.20.2. Gesture Classes
        • 7.9.20.3. System Components
        • 7.9.20.4. Running the Example
        • 7.9.20.5. Configuration
        • 7.9.20.6. Feature Extraction
        • 7.9.20.7. Training and Deployment
        • 7.9.20.8. Results
        • 7.9.20.9. See Also
      • 7.9.21. Wi-Fi CSI Presence Detection
        • 7.9.21.1. Overview
        • 7.9.21.2. Running the Example
        • 7.9.21.3. Configuration
        • 7.9.21.4. Datasets
        • 7.9.21.5. Feature Extraction
        • 7.9.21.6. Results
        • 7.9.21.7. Training and Deployment
        • 7.9.21.8. See Also
      • 7.9.22. Torque Measurement Regression
        • 7.9.22.1. Overview
        • 7.9.22.2. The Dataset
        • 7.9.22.3. Running the Example
        • 7.9.22.4. Configuration
        • 7.9.22.5. Results
        • 7.9.22.6. Output Location
        • 7.9.22.7. Running on Device
        • 7.9.22.8. See Also
      • 7.9.23. Induction Motor Speed Prediction
        • 7.9.23.1. Overview
        • 7.9.23.2. The Dataset
        • 7.9.23.3. Preparing the Dataset
        • 7.9.23.4. Running the Example
        • 7.9.23.5. Configuration
        • 7.9.23.6. Results
        • 7.9.23.7. Output Location
        • 7.9.23.8. Running on Device
        • 7.9.23.9. See Also
      • 7.9.24. Washing Machine Load Weighing
        • 7.9.24.1. Overview
        • 7.9.24.2. The Dataset
        • 7.9.24.3. Running the Example
        • 7.9.24.4. Configuration
        • 7.9.24.5. Results
        • 7.9.24.6. Output Location
        • 7.9.24.7. Running on Device
        • 7.9.24.8. See Also
      • 7.9.25. MOSFET Junction Temperature Prediction
        • 7.9.25.1. Overview
        • 7.9.25.2. Thermal Model
        • 7.9.25.3. Linear + AI Model
        • 7.9.25.4. The Dataset
        • 7.9.25.5. Running the Example
        • 7.9.25.6. Configuration
        • 7.9.25.7. Results
        • 7.9.25.8. Output Location
        • 7.9.25.9. Running on Device
        • 7.9.25.10. See Also
      • 7.9.26. Battery State of Charge (SOC) Estimation
        • 7.9.26.1. Overview
        • 7.9.26.2. The Dataset
        • 7.9.26.3. Running the Example
        • 7.9.26.4. Configuration
        • 7.9.26.5. Results
        • 7.9.26.6. Output Location
        • 7.9.26.7. Running on Device
        • 7.9.26.8. See Also
      • 7.9.27. PMSM Rotor Temperature Forecasting
        • 7.9.27.1. Overview
        • 7.9.27.2. The Dataset
        • 7.9.27.3. Running the Example
        • 7.9.27.4. Configuration
        • 7.9.27.5. Evaluation
        • 7.9.27.6. Results
        • 7.9.27.7. Output Location
        • 7.9.27.8. Running on Device
        • 7.9.27.9. See Also
      • 7.9.28. HVAC Indoor Temperature Forecasting
        • 7.9.28.1. Overview
        • 7.9.28.2. The Dataset
        • 7.9.28.3. Running the Example
        • 7.9.28.4. Configuration
        • 7.9.28.5. Results
        • 7.9.28.6. Output Location
        • 7.9.28.7. Running on Device
        • 7.9.28.8. See Also
      • 7.9.29. Forecasting Examples Guide
        • 7.9.29.1. Forecasting Examples in 1.5.0
        • 7.9.29.2. How Forecasting Works
        • 7.9.29.3. Metrics
        • 7.9.29.4. Available Models
        • 7.9.29.5. Forecasting versus Regression
        • 7.9.29.6. Deployment
      • 7.9.30. Anomaly Detection Examples Overview
        • 7.9.30.1. Anomaly Detection Configs in 1.5.0
        • 7.9.30.2. Workflow
        • 7.9.30.3. Available Models
        • 7.9.30.4. Threshold Selection
        • 7.9.30.5. Anomaly Detection versus Classification
        • 7.9.30.6. Troubleshooting
        • 7.9.30.7. See Also
      • 7.9.31. Google Speech Command Recognition
        • 7.9.31.1. Overview
        • 7.9.31.2. Keyword Classes
        • 7.9.31.3. The Dataset
        • 7.9.31.4. Features
        • 7.9.31.5. Model
        • 7.9.31.6. Running the Example
        • 7.9.31.7. Configuration
        • 7.9.31.8. Results
        • 7.9.31.9. Output Location
        • 7.9.31.10. See Also
      • 7.9.32. Wake Word Detection
        • 7.9.32.1. Overview
        • 7.9.32.2. The Dataset
        • 7.9.32.3. Feature Extraction: Learned Filterbank
        • 7.9.32.4. Model
        • 7.9.32.5. Running the Example
        • 7.9.32.6. Configuration
        • 7.9.32.7. Results
        • 7.9.32.8. Output Location
        • 7.9.32.9. Running on Device
        • 7.9.32.10. See Also
      • 7.9.33. Glass Break Detection
        • 7.9.33.1. Overview
        • 7.9.33.2. The Dataset
        • 7.9.33.3. Feature Extraction
        • 7.9.33.4. Model
        • 7.9.33.5. Running the Example
        • 7.9.33.6. Configuration
        • 7.9.33.7. Results
        • 7.9.33.8. Output Location
        • 7.9.33.9. See Also
      • 7.9.34. Cough Detection
        • 7.9.34.1. Overview
        • 7.9.34.2. Data Collection
        • 7.9.34.3. Preparing the Dataset
        • 7.9.34.4. Feature Extraction: MSPM0_LPC_8820
        • 7.9.34.5. Model
        • 7.9.34.6. Running the Example
        • 7.9.34.7. Configuration
        • 7.9.34.8. Results
        • 7.9.34.9. Memory Footprint
        • 7.9.34.10. Output Location
        • 7.9.34.11. See Also
      • 7.9.35. MNIST Image Classification
        • 7.9.35.1. Overview
        • 7.9.35.2. The Dataset
        • 7.9.35.3. Feature Extraction
        • 7.9.35.4. Running the Example
        • 7.9.35.5. Configuration
        • 7.9.35.6. Results
        • 7.9.35.7. Output Location
        • 7.9.35.8. See Also
      • 7.9.36. Machine Readable Code Classification
        • 7.9.36.1. Overview
        • 7.9.36.2. The Dataset
        • 7.9.36.3. Running the Example
        • 7.9.36.4. Configuration
        • 7.9.36.5. Results
        • 7.9.36.6. Output Location
        • 7.9.36.7. See Also
      • 7.9.37. Coffee Bean Classification
        • 7.9.37.1. Overview
        • 7.9.37.2. The Dataset
        • 7.9.37.3. Feature Extraction
        • 7.9.37.4. Running the Example
        • 7.9.37.5. Configuration
        • 7.9.37.6. Results
        • 7.9.37.7. Output Location
        • 7.9.37.8. See Also
      • 7.9.38. Image Classification Examples Guide
        • 7.9.38.1. Image Examples in 1.5.0
        • 7.9.38.2. Dataset Format
        • 7.9.38.3. Feature Extraction Presets
        • 7.9.38.4. Available Models
        • 7.9.38.5. Results
        • 7.9.38.6. Limitations
      • 7.9.39. Radar Pose and Fall Detection
        • 7.9.39.1. Overview
        • 7.9.39.2. The Dataset
        • 7.9.39.3. Preparing Your Own Data (Optional)
        • 7.9.39.4. Running the Example
        • 7.9.39.5. Configuration
        • 7.9.39.6. Results
        • 7.9.39.7. Output Location
        • 7.9.39.8. See Also
  • 8. Features
    • 8.1. Feature Extraction
      • 8.1.1. Pipeline
      • 8.1.2. Configuration parameters
      • 8.1.3. Presets
      • 8.1.4. Data processing transforms
      • 8.1.5. Feature extraction transforms
      • 8.1.6. Custom feature extraction
      • 8.1.7. Windowing and framing
        • 8.1.7.1. Frame offset
        • 8.1.7.2. Stacking modes
        • 8.1.7.3. Analysis bandwidth
        • 8.1.7.4. Gain variation augmentation
        • 8.1.7.5. Forecasting
      • 8.1.8. Audio front-ends
      • 8.1.9. Radar and image inputs
      • 8.1.10. Evaluating feature extraction quality
        • 8.1.10.1. Feature extraction only mode
      • 8.1.11. Memory cost on the device
      • 8.1.12. Best practices
      • 8.1.13. Next steps
    • 8.2. Goodness of Fit
      • 8.2.1. Enabling the GoF test
      • 8.2.2. Output
      • 8.2.3. The 8 plots
      • 8.2.4. Interpreting the results
      • 8.2.5. Frame size sweeping
      • 8.2.6. Multiple clusters per class
      • 8.2.7. Comparing feature extraction
      • 8.2.8. Limitations
      • 8.2.9. Next steps
    • 8.3. Early Stopping
      • 8.3.1. Configuration
      • 8.3.2. How it works
    • 8.4. Training Performance
      • 8.4.1. Options in the config YAML
      • 8.4.2. Automatic behavior
      • 8.4.3. Apple Silicon
    • 8.5. Neural Architecture Search
      • 8.5.1. When to use NAS
      • 8.5.2. Supported task types
      • 8.5.3. NAS and the memory estimate
      • 8.5.4. How it works
      • 8.5.5. Configuration
        • 8.5.5.1. Model size presets
      • 8.5.6. Usage
      • 8.5.7. Full example
      • 8.5.8. Tips
      • 8.5.9. Search algorithm
      • 8.5.10. References
      • 8.5.11. Next steps
    • 8.6. Quantization
      • 8.6.1. What is new in 1.5.0
      • 8.6.2. Configuration parameters
      • 8.6.3. Quantization modes
      • 8.6.4. Quantization methods
      • 8.6.5. Bit widths
      • 8.6.6. NPU constraints
      • 8.6.7. Output files
      • 8.6.8. Troubleshooting accuracy loss
      • 8.6.9. QAT training performance
      • 8.6.10. Using the wrappers directly
        • 8.6.10.1. Wrapper arguments
      • 8.6.11. Next steps
    • 8.7. Automatic Mixed Precision Quantization
      • 8.7.1. Overview
      • 8.7.2. Algorithm
      • 8.7.3. Tolerance thresholds
      • 8.7.4. Configuration
      • 8.7.5. Task-specific behavior
      • 8.7.6. Example config
      • 8.7.7. Next steps
    • 8.8. Mixed Precision Quantization
      • 8.8.1. Automatic mixed precision (HAWQ)
        • 8.8.1.1. Tolerances (training section)
      • 8.8.2. Ternary-weight, 8-bit-activation QAT
    • 8.9. Standalone Quantization Examples
      • 8.9.1. Common workflow
      • 8.9.2. Guidance
      • 8.9.3. Next steps
    • 8.10. Post-Training Analysis
      • 8.10.1. Enabling analysis
      • 8.10.2. Where the files are
      • 8.10.3. Confusion matrix
      • 8.10.4. ROC curves
      • 8.10.5. Class score histograms
      • 8.10.6. FPR/TPR thresholds
      • 8.10.7. Regression outputs
      • 8.10.8. Anomaly detection outputs
      • 8.10.9. Float versus quantized
      • 8.10.10. Next steps
    • 8.11. Memory Estimation
      • 8.11.1. Pre-flight during a training run
      • 8.11.2. Standalone estimate_memory
        • 8.11.2.1. Limitations
    • 8.12. On-Device Training (ODT)
      • 8.12.1. Two frameworks
      • 8.12.2. Configuration
      • 8.12.3. Documentation
        • 8.12.3.1. On-Device Training Documentation
        • 8.12.3.2. On-Device Training — Overview
        • 8.12.3.3. Running ModelZoo for On-Device Training
        • 8.12.3.4. Generated Artifacts Overview
        • 8.12.3.5. Trainable Model Configuration Files
        • 8.12.3.6. On-Device Training Data
        • 8.12.3.7. On-Device Training Library
        • 8.12.3.8. Anomaly Detection On-Device Training Library
        • 8.12.3.9. Fan Blade Anomaly Detection — On-Device Training Example
        • 8.12.3.10. On-Device Training — FAQ & Troubleshooting
        • 8.12.3.11. Integer On-Device Training Documentation
        • 8.12.3.12. Integer On-Device Training: Overview
        • 8.12.3.13. Running ModelMaker for Integer On-Device Training
        • 8.12.3.14. Generated Artifacts Overview
        • 8.12.3.15. Integer Model Configuration: Deep Dive
        • 8.12.3.16. Training Data
        • 8.12.3.17. Integer ODL Library: API Reference
    • 8.13. New in 1.5.0
    • 8.14. Overview
  • 9. Deployment
    • 9.1. Start Here
      • 9.1.1. Deploying a ModelZoo Run to an SDK Example (Golden-Vector Check)
        • 9.1.1.1. At a Glance: the 4 Files
        • 9.1.1.2. Step 1: Pick the SDK and the Example
        • 9.1.1.3. Step 2: Import the Example into CCS
        • 9.1.1.4. Step 3: Replace the 4 Files
        • 9.1.1.5. Step 4: Build, Flash, Check
        • 9.1.1.6. Step 5: Try the Other Test Sets
        • 9.1.1.7. Troubleshooting
        • 9.1.1.8. After the Golden Vectors Pass
      • 9.1.2. CCS Integration Guide
        • 9.1.2.1. Prerequisites
        • 9.1.2.2. What You Get in the Run Folder
        • 9.1.2.3. Import the Example
        • 9.1.2.4. Build, Flash and Run
        • 9.1.2.5. Check the Result
        • 9.1.2.6. Memory and Linker Problems
        • 9.1.2.7. Common Issues
        • 9.1.2.8. Next Steps
      • 9.1.3. NPU Device Deployment
        • 9.1.3.1. NPU-Enabled Devices
        • 9.1.3.2. NPU Compilation
        • 9.1.3.3. What Is Different at Run Time
        • 9.1.3.4. Walkthrough: F28P55x
        • 9.1.3.5. Troubleshooting
        • 9.1.3.6. Next Steps
      • 9.1.4. Non-NPU Deployment
        • 9.1.4.1. Non-NPU Devices
        • 9.1.4.2. Importing an Example That Is Not in Resource Explorer
        • 9.1.4.3. CPU Inference Considerations
        • 9.1.4.4. Non-NPU vs NPU
        • 9.1.4.5. Next Steps
      • 9.1.5. Project Compilation Guide: Timeseries Classification Examples
        • 9.1.5.1. Overview
        • 9.1.5.2. Table of Contents
        • 9.1.5.3. Required Tools
        • 9.1.5.4. Output From Modelzoo
        • 9.1.5.5. How to run on device
        • 9.1.5.6. Next Steps
      • 9.1.6. Deploying Regression Models from ModelMaker to Device
        • 9.1.6.1. Abhijeet Pal, Adithya Thonse, Tushar Sharma, Fasna Sharaf, Jaswanth Kumar
        • 9.1.6.2. Table of Contents
        • 9.1.6.3. Overview
        • 9.1.6.4. Prerequisites
        • 9.1.6.5. Deployment Steps
        • 9.1.6.6. Verify Your Model
      • 9.1.7. Deploying Forecasting Models from ModelMaker to Device
        • 9.1.7.1. Fasna Sharaf, Adithya Thonse, Tushar Sharma, Abhijeet Pal, Jaswanth Kumar
        • 9.1.7.2. Table of Contents
        • 9.1.7.3. Overview
        • 9.1.7.4. Prerequisites
        • 9.1.7.5. Deployment Steps
        • 9.1.7.6. Verify Your Model
        • 9.1.7.7. Next Steps
      • 9.1.8. Deploying Anomaly Detection Models from ModelZoo to Device
        • 9.1.8.1. Jaswanth Jadda, Adithya Thonse, Tushar Sharma, Abhijeet Pal, Fasna Sharaf
        • 9.1.8.2. Table of Contents
        • 9.1.8.3. Overview
        • 9.1.8.4. Prerequisites
        • 9.1.8.5. Deployment Steps
        • 9.1.8.6. Verify Your Model
    • 9.2. Deployment Workflow
  • 10. Edge AI Studio Model Composer
    • 10.1. Model Composer Overview
      • 10.1.1. What it does
      • 10.1.2. Accessing Model Composer
      • 10.1.3. Typical features
      • 10.1.4. Limitations
      • 10.1.5. Combining the GUI and the command line
      • 10.1.6. Next steps
    • 10.2. Getting Started (GUI)
      • 10.2.1. Prerequisites
      • 10.2.2. Step 1: Open Model Composer
      • 10.2.3. Step 2: Create the project
      • 10.2.4. Step 3: Add a dataset
      • 10.2.5. Step 4: Feature extraction
      • 10.2.6. Step 5: Training settings
      • 10.2.7. Step 6: Train
      • 10.2.8. Step 7: Analyze and test
      • 10.2.9. Step 8: Export
      • 10.2.10. Next steps
    • 10.3. Exporting Models
      • 10.3.1. Export options
      • 10.3.2. Importing a CCS project
      • 10.3.3. Using artifacts in an existing project
      • 10.3.4. Continuing in the command line
      • 10.3.5. Export troubleshooting
      • 10.3.6. Next steps
    • 10.4. What is Model Composer?
    • 10.5. GUI vs command line
  • 11. Bring Your Own Model
    • 11.1. Contents
      • 11.1.1. Bring Your Own Model (BYOM)
        • 11.1.1.1. Files You Will Change
        • 11.1.1.2. Prerequisites
        • 11.1.1.3. Step 1: Add the Model Class
        • 11.1.1.4. Step 2: Add the Model Description
        • 11.1.1.5. Step 3: Create a Config That Uses Your Model
        • 11.1.1.6. Step 4: Train, Quantize and Compile
        • 11.1.1.7. Step 5: Check the Results
        • 11.1.1.8. Troubleshooting
        • 11.1.1.9. Guidelines for Designing Your Model
      • 11.1.2. Adding Models to ModelZoo
        • 11.1.2.1. The two names
        • 11.1.2.2. Files per task type
        • 11.1.2.3. Writing the model class
        • 11.1.2.4. Writing the description
        • 11.1.2.5. Using the model
        • 11.1.2.6. Next steps
      • 11.1.3. Compilation Only
        • 11.1.3.1. Configuration
        • 11.1.3.2. Running the compilation
        • 11.1.3.3. Example: external PyTorch model
        • 11.1.3.4. NPU constraints
        • 11.1.3.5. Troubleshooting
        • 11.1.3.6. Best practices
        • 11.1.3.7. Next steps
    • 11.2. Which approach do I need?
    • 11.3. Model requirements
  • 12. Troubleshooting
    • 12.1. Common Errors
      • 12.1.1. Setup and configuration
        • 12.1.1.1. Unknown model name
        • 12.1.1.2. Python 3.11 or newer cannot compile
        • 12.1.1.3. No examples/ folder after a wheel install
        • 12.1.1.4. Compiler tools not found (TOOLS_PATH)
      • 12.1.2. Training
        • 12.1.2.1. NaN or infinite loss
        • 12.1.2.2. Training stops before all epochs
        • 12.1.2.3. ONNX export fails at AdaptiveAvgPool
        • 12.1.2.4. QAT: scale and zero-point dimension error
        • 12.1.2.5. QAT: tensors on different devices
        • 12.1.2.6. Dataset download: File is not a zip file
        • 12.1.2.7. IndexError: list index out of range when loading the dataset
      • 12.1.3. Compilation and model design
        • 12.1.3.1. NPU layer constraint violations
        • 12.1.3.2. Golden vector mismatch on the device
      • 12.1.4. Platform
        • 12.1.4.1. macOS (Apple Silicon, MPS)
      • 12.1.5. Other tips
    • 12.2. FAQ
      • 12.2.1. General
      • 12.2.2. Installation
      • 12.2.3. Models and training
      • 12.2.4. Deployment
    • 12.3. Quick checks
    • 12.4. Getting help
  • 13. Appendix
    • 13.1. Configuration Reference
      • 13.1.1. How a YAML is merged
      • 13.1.2. File structure
      • 13.1.3. Common section
      • 13.1.4. Dataset section
      • 13.1.5. Data processing and feature extraction section
      • 13.1.6. Training section
      • 13.1.7. Testing section
      • 13.1.8. Compilation section
      • 13.1.9. Example
    • 13.2. Model Zoo Reference
      • 13.2.1. Timeseries classification (also used by radar classification)
      • 13.2.2. Timeseries regression
      • 13.2.3. Timeseries forecasting
      • 13.2.4. Timeseries anomaly detection
      • 13.2.5. Audio classification
      • 13.2.6. Image classification
      • 13.2.7. Model counts
    • 13.3. Changelog
      • 13.3.1. Version 1.5.0
      • 13.3.2. Version 1.4.0
      • 13.3.3. Version 1.3.0
      • 13.3.4. Version 1.1.0
      • 13.3.5. Version 1.0.0
      • 13.3.6. Migration Guides
        • 13.3.6.1. Migrating from 1.1.x to 1.2.x
      • 13.3.7. Deprecation Notices
      • 13.3.8. Known Issues
      • 13.3.9. Roadmap
      • 13.3.10. Contributing
TI Tiny ML ModelZoo
  • Index

Index

A | B | C | E | F | G | I | L | M | N | O | P | Q | S | T | V

A

  • AM13
  • AM26x
  • Autoencoder

B

  • BYOD
  • BYOM

C

  • C2000
  • C2000Ware
  • CCS

E

  • Early stopping

F

  • Feature Extraction
  • feature_extraction_name
  • frame_size

G

  • Golden vectors

I

  • Inference

L

  • LaunchPad

M

  • MACs
  • Mixed-precision quantization
  • model_name
  • ModelMaker
  • ModelZoo
  • MSPM0
  • MSPM33C

N

  • NAS
  • NNC
  • NPU

O

  • ONNX

P

  • projects_path
  • PTQ

Q

  • QAT
  • Quantization

S

  • stride_size

T

  • target_device
  • task_type
  • Tensorlab
  • TINPU
  • TinyVerse

V

  • variables

© Copyright 2026, Texas Instruments Incorporated. Last updated on Oct 13, 2026.