# Introduction to TinyML on Arm using PyTorch and ExecuTorch

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/)
- [Overview](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/1-overview/)
- [Install ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/2-env-setup/)
- [Set up the Corstone-320 FVP](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/3-env-setup-fvp/)
- [Build a simple PyTorch model](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/4-build-model/)
- [Next Steps](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/_next-steps/)

## About this Learning Path

| Skill level:      | Introductory       |
|-------------------|--------------------|
| Reading time:     | 40 min             |
| Last updated:     | 13 Aug 2026        |

| Author:                             | Dominica Abena O. Amanfo |
|-------------------------------------|----------------------------|
| Arm IP:                             | [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors) [Cortex-M](https://support.arm.com/?tab=compute-ip&Product%20Type=Microcontrollers) [Ethos-U](https://support.arm.com/?tab=compute-ip&Product%20Type=Neural%20Processing%20Units) |
| Tags:                               | [ML](/tag/ml) [Linux](/tag/linux) [Arm Virtual Hardware](/tag/arm-virtual-hardware) [FVP](/tag/fvp) [Python](/tag/python) [PyTorch](/tag/pytorch) [ExecuTorch](/tag/executorch) [Arm Compute Library](/tag/arm-compute-library) [GCC](/tag/gcc) |

## Who is this for?
This is an introductory topic for developers and data scientists new to Tiny Machine Learning (TinyML) who want to explore its potential using PyTorch and ExecuTorch.

## What will you learn?
Upon completion of this Learning Path, you will be able to:
- Describe what differentiates TinyML from other AI domains
- Describe the benefits of deploying AI models on Arm-based edge devices
- Identify suitable Arm-based devices for TinyML applications
- Set up and configure a TinyML development environment using ExecuTorch and Corstone-320 Fixed Virtual Platform (FVP)

## Prerequisites
Before starting, you will need the following:
- Basic knowledge of Machine Learning concepts
- A Linux computer

## Summary
You’ll learn TinyML on Arm with ExecuTorch and the Corstone-320 FVP. First, you’ll install ExecuTorch, configure the FVP, and compare resource-constrained edge inference with cloud machine learning. Then, you’ll implement a small PyTorch network and export it through ExecuTorch, creating an edge-ready artifact for a virtual target supporting Cortex-M and Arm Ethos-U.

## Frequently asked questions

### How do I know the Corstone-320 FVP setup worked?
The setup is successful when the setup scripts complete without errors and the reference package is available for use. At that point, the FVP is ready for software development and validation without a physical board.

### What does installing ExecuTorch enable in this workflow?
ExecuTorch lets you export PyTorch models and prepare them for execution on resource‑constrained Arm targets. It provides the APIs used to convert the example network into an edge‑ready form.

### What file do I create for the example model, and what does it include?
Create `simple_nn.py`, which defines a small feedforward network with two linear layers and a ReLU activation for a classification task. The script also uses `torch.export` and ExecuTorch conversion to generate an edge representation.

### Do I need a physical development board?
No. The Corstone-320 FVP provides a pre-silicon environment to build and test software before hardware is available.

### Which Arm components does the Corstone-320 FVP support?
The FVP includes support for Arm Ethos-U NPUs and Cortex-M processors. It’s designed for AI and machine learning workloads on microcontrollers.
