| |
Mar 14, 2026
|
|
|
|
|
CSC 6608 - ML on Embedded Systems4 lecture hours 0 lab hours 4 credits Course Description The class will focus on the use of machine learning models on low-powered embedded devices. Students will learn about the hardware and software characteristics of an embedded system platform including computational, memory, and power constraints. Students will learn to use a development environment, libraries, and appropriate algorithms to write software for an embedded system. Libraries will be used to read streaming sensor data from the device and control output devices. Students will train and evaluate ML models for various tasks that use sensor data as input. Tradeoffs in prediction performance, computational and memory use, and power consumption with regards to different ML model types, hyper-parameters set at training time, and post-processing techniques for reducing model sizes will be demonstrated. Students will learn to integrate feature engineering logic and trained ML models into software deployed on the device. Both classical ML and deep learning techniques will be covered. Aspects such as product requirements, hardware capabilities, reliability, and on-device testing/validation will be emphasized throughout. Prereq: CSC 5616 or instructor consent Note: None Course Learning Outcomes Upon successful completion of this course, the student will be able to:
- Describe considerations that must be made when targeting embedded systems but not for desktop or server systems
- Write and deploy programs that run on an embedded device using a development environment
- Write programs that can read streaming input data from sensors and control output devices
- Use timers and interrupts to schedule periodic tasks
- Transform streaming sensor data for use as input to machine learning models
- Analyze sensitivity of model predictions to errors in input data
- Describe the run time and memory usage for on-device ML inference tasks for multiple machine learning and deep learning model types and the impact of hyper-parameters used for training
- Apply post-processing techniques to reduce model size and computational requirements
- Design, execute, and interpret results of experiments to assess prediction performance, run time, power usage, and reliability of ML inference tasks executed on an embedded device
Prerequisites by Topic
- Advanced proficiency with Python programming
- Using the Python ecosystem for exploring, cleaning, and visualizing data
- Using the Python ecosystem to perform feature engineering and train and evaluate classical machine learning models
- Using a Python-based deep learning framework to implement, train, and evaluate deep learning models
- Basic procedural programming skills in a compiled language
Course Topics
- Survey of applications and machine learning tasks performed on embedded devices and associated sensor data
- Writing programs to control embedded devices using common software patterns such as super loops, interrupts and timers for reoccurring tasks, and libraries for reading data from sensors and controlling output devices
- Using ecosystem tools to compile and deploy software to an embedded device
- The structure of time series data and techniques for modeling seasonality and trends
- Exporting feature extraction and inference routines for trained ML models as plain C or Python code
- Deep learning architectures for tasks related to time series, audio, and video data
- Estimating memory usage, power usage, and run time of inference tasks using classical and deep learning models on different hardware
- Tradeoffs of hyper-parameter choices for classical and deep learning models in terms of prediction performance and memory usage and run time of inference steps
- Pruning and quantization techniques to reduce memory usage and run time of inference steps for deep learning models
Coordinator Dr. RJ Nowling
Add to Portfolio (opens a new window)
|
|