SkillAgentSearch skills...

FedAvg

Simple implementation of FedAvg, a Federated Learning algorithm.

Install / Use

/learn @naderAsadi/FedAvg
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Overview

Implementation of FedAvg in Pytorch, supporting WandB logging.

Installation

Dependencies

Requires Python 3.6+.

  • numpy>=1.22.4
  • pytorch>=1.12.0
  • torchvision>=0.13.0
  • wandb>=0.12.19

Conda Installation

conda env create -f environment.yml

How To Use

Major Arguments

| Flag | Options | Default |Info | | --------------- | ----------- | :-------: |----------| | --data_root | String | "../datasets/" | path to data directory | | --model_name | String | "cnn" | name of the model (cnn, mlp) | |--non_iid | Int (0 or 1) | 1 | 0: IID, 1: Non-IID | | --n_clients | Int | 100 | number of the clients | | --n_shards | Int | 200 | number of shards | | --frac | Float | 0.1 | fraction of clients in each round | | --n_epochs | Int | 1000 | total number of rounds | | --n_client_epochs | Int | 5 | number of local training epochs | | --batch_size | Int | 10 | batch size | | --lr | Float | 0.01 | leanring-rate | | --wandb | Bool | False | log the results to WandB |

Training Example

python fed_avg.py --batch_size=10 --frac=0.1 --lr=0.01 --n_client_epochs=20 --n_clients=100 --n_epochs=1000 --n_shards=200 --non_iid=1

To perform a sweep over hyperparameters using WandB:

wandb sweep sweep.yaml
wandb agent <sweep_id>
View on GitHub
GitHub Stars36
CategoryEducation
Updated11d ago
Forks13

Languages

Python

Security Score

80/100

Audited on Mar 20, 2026

No findings