ESE 3600: Tiny ML

Welcome to TinyML

Embedded Machine Learning is a cutting-edge field that brings the transformative power of machine learning (ML) to the performance-constrained and power-constrained domain of embedded systems to develop useful and exciting Internet of Things solutions. This is an introductory course at the intersection of Machine Learning (ML) and Embedded Internet of Things (IoT) Devices which covers machine learning applications and algorithms using embedded hardware, sensors, actuators and software. Embedding machine learning in a device at the extreme end point - right at the data source - is fundamentally different from general data-center style machine learning. Embedded ML is all about real-time processing of time-series data that comes directly from sensors. By the end of this course, students will collect and preprocess data to build a dataset, design a model, train a model, evaluate and optimize the pipeline, convert the model to run on hardware, deploy the model on a microcontroller, make inference and roll out applications. This will enable future applications development across medical devices, home appliances, industrial automation, wild-life conservation, smart agriculture and many more. Prerequisites: Basic knowledge of programming (CIS110 or equivalent) and basic knowledge of Python and basic knowledge of electronics and circuits. We provide the background, tools and assignments for machine learning and embedded systems using TensorFlow, Google Colab, and ARM Cortex32 hardware platforms.

Resources

Project Examples

Fall 22


This course is taught at the University of Pennsylvania.