Plato: A Research Framework for Federated Learning
Welcome to Plato, a software framework to facilitate scalable, reproducible, and extensible federated learning research.
Getting Started
Installing and Running Plato
Get Plato up and running in your environment.
- Installation - Installing Plato and setting up your development environment
- Quick Start - Getting started with Plato
Examples
Examples
Explore some examples on how to get started implementing federated learning algorithms.
- Getting Started - Basic examples to get you started
Algorithms
- Server Aggregation Algorithms
- Secure Aggregation with Homomorphic Encryption
- Asynchronous Federated Learning
- Federated Unlearning
- Customized Client Training Loops
- Client Selection Algorithms
- Split Learning Algorithms
- Personalized Federated Learning
- Self-Supervised Personalized FL
- Neural Architecture Search
- Three-layer Federated Learning
- Poisoning Detection
- Model Pruning
- Gradient Leakage Attacks and Defences
Configuration Settings
Configuration Settings
Comprehensive guides for configuring all aspects of Plato.
- Overview - An overview of configuration settings
- General - General configuration
- Clients - Client configuration
- Server - Server configuration
- Data - Data handling configuration
- Trainer - Training configuration
- Algorithm - Algorithm configuration
- Results - Results and logging configuration
- Parameters - Parameter configuration
API Reference
API Documentation
Detailed API reference for customizing Plato components.
Development and Deployment
Development and Deployment
For developers and production deployments.
- Developer's Guide - Contribute to Plato development
- Deployment Guide - Deploy Plato in production environments
Additional Resources
Additional documentation and troubleshooting
- Miscellaneous - Troubleshooting, testing, and additional notes