Skip to content

Getting Started

In examples/, we included a wide variety of examples that showed how federated learning algorithms in the research literature can be implemented using Plato by customizing the client, server, algorithm, and trainer classes.

Dataset Preparation

When you run an example for the first time, Plato downloads the required datasets automatically before training begins. Depending on the dataset size and your connection speed, the first round may take a little longer while the assets are prepared.

Plato uses uv for hierarchical dependency management. Example-specific packages are defined in local pyproject.toml files rather than in the top-level directory.

To run an example with its dependencies, you need to run uv sync first in the top-level directory, navigate to the directory containing the example, and then use uv run to run the example.

Note

To make sure that all dependencies are properly loaded, always run uv run from within the directory containing the example.

Plato supports both Linux with NVIDIA GPUs and macOS with M1/M2/M4/M4 GPUs. It will automatically detect and use these GPUs when they are present.


Algorithms Using Plato

Case Studies