# Edge AI on Arm: PyTorch and ExecuTorch rock-paper-scissors

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/training-inference-pytorch/)
- [Set up your environment](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/training-inference-pytorch/env-setup-1/)
- [Train and Test the rock-paper-scissors Model](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/training-inference-pytorch/fine-tune-2/)
- [Run the model on Corstone-320 FVP](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/training-inference-pytorch/fvp-3/)
- [Next Steps](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/training-inference-pytorch/_next-steps/)

## About this Learning Path

|  |  |
| --- | --- |
| Skill level: | Introductory |
| Reading time: | 1 hr |
| Last updated: | 13 Aug 2026 |

|  |  |
| --- | --- |
| Author: | Dominica Abena O. Amanfo |
| Arm IP: | [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](https://learn.arm.com/tag/ml) [Linux](https://learn.arm.com/tag/linux) [tinyML](https://learn.arm.com/tag/tinyml) [Computer Vision](https://learn.arm.com/tag/computer-vision) [Edge AI](https://learn.arm.com/tag/edge-ai) [CNN](https://learn.arm.com/tag/cnn) [PyTorch](https://learn.arm.com/tag/pytorch) [ExecuTorch](https://learn.arm.com/tag/executorch) |

### Who is this for?
This is an introductory topic for machine learning developers who want to deploy TinyML models on Arm-based edge devices using PyTorch and ExecuTorch.

### What will you learn?
After completing this Learning Path, you'll be able to perform the following tasks:
- Train a small Convolutional Neural Network (CNN) for image classification using PyTorch
- Use synthetic data generation for training a model when real data is limited
- Convert and optimize a PyTorch model to an ExecuTorch program (`.pte`) for Arm-based devices
- Run the trained model locally as an interactive mini-game to demonstrate inference

### Prerequisites
Before starting, you'll need the following prerequisites:
- Basic understanding of machine learning concepts
- Familiarity with Python and the PyTorch library
- Completion of the Learning Path [Introduction to TinyML on Arm using PyTorch and ExecuTorch](https://learn.arm.com/learning-paths/embedded-and-microcontrollers/introduction-to-tinyml-on-arm/)
- An x86 Linux host machine or VM running Ubuntu 22.04 or later

### Summary
You’ll build a rock-paper-scissors prototype with PyTorch and ExecuTorch on Arm. First, you’ll create a lightweight image-classification CNN, train it, export a `.pte` program, and run the command-line mini-game. Then, you’ll compile the model with the Ahead-of-Time Arm compiler and run it on the Corstone-320 Fixed Virtual Platform with Ethos-U delegation.

### Frequently asked questions

**Where should I put the rock–paper–scissors script before training?**

  Place the script in the ExecuTorch repository under the Arm examples directory at `$HOME/executorch/examples/arm`.

**How do I launch the mini‑game after training?**

  Run the script with the play option. The mini‑game uses the best weights found on disk.

**How do I know the export to ExecuTorch worked?**

  A successful export produces a `.pte` file. Check that the file is created in the expected location after running the export step.

**Do I need a dataset or camera for training?**

  You don’t need an external dataset or camera because you’ll use synthetic data generation for training. The model learns to classify images of the letters R, P, and S.

**Which log messages confirm that the model starts on the Corstone-320 FVP?**

  Check the FVP output for the model loading and `Running method forward` messages. An `EthosUBackend.cpp` initialization message confirms that the Ethos-U backend starts during inference.
