ESE3600: Tiny Machine Learning.

Course Overview
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.
Workflow & Grading


Schedule
Resources
ESE3600 Syllabus
Arduino Wesbite

Tensorflow LiteWesbite
Pete Warden's Magic Wand Capture tool
Pete Warden's Open Speech Recording plugin
Some example project videos
Arnav Ghatiwala - ESE3600 F22
TinyML - KWS action on robot TinyML - Trajectory detection on robotDhruv Agarwal - ESE3600 F22
Pedestrian light detection TinyML appJosh Ludan - ESE3600 F22
TinyML dungeon and dragons dice readerStaff
Instructor
Professor Rahul Mangharam [rahulm@seas.upenn.edu]
Teaching Assistants

Manasa Sathyan [msathyan@seas.upenn.edu]

Tejas Agarwal [tejasag@seas.upenn.edu]
Blog
- Github repository is set to Public - Click on icon below.
- Collect your Hardware kits post Spring Break 2023 or drop by Levine 279 (XLAB)