https://github.com/xtra-computing/fedgma
Communication-Efficient Generalized Neuron Matching for Federated Learning (ICPP'23)
https://github.com/xtra-computing/fedgma
Last synced: about 1 month ago
JSON representation
Communication-Efficient Generalized Neuron Matching for Federated Learning (ICPP'23)
- Host: GitHub
- URL: https://github.com/xtra-computing/fedgma
- Owner: Xtra-Computing
- License: mit
- Created: 2023-07-30T06:01:47.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-07-30T06:07:00.000Z (over 2 years ago)
- Last Synced: 2024-12-29T19:05:52.270Z (about 1 year ago)
- Language: Python
- Size: 252 KB
- Stars: 1
- Watchers: 7
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FedGMA
This is the code of paper [Communication-Efficient Generalized Neuron Matching for Federated Learning](https://doi.org/10.1145/3605573.3605726)
## Requirements
System requirements:
* Openssh client & server
* Cmake & build essentials
* CUDA runtime >= 11.2
* Tmux >=3.2a
Python requirements:
* Python == 3.9
* Install all requirements with `pip install -r requirements.txt`.
## Usage
First edit `workers.txt` to configure the GPU resource allocation. Each line should have the format of ` localhost `. `` specifies the GPU index (starting from 0). The first line must be `server localhost `, and the remaining lines must start with `client`. The total number of `client` lines must be greater than the total number of clients to start.
This is an example to run the code:
```bash
python -um code.launcher.client_server \
+a fedavg +n 8 +sa -md.n unordered-resnet18 \
-dt.r.d cifar10 -fl.bt model -fedavg.eslr 0.04 \
-tr.bs 128 -tr.s.n reduceonplateau \
-tr.o.sgd.wghtdcy 5e-4 -tr.e 10000 -tr.lr 0.05
```
This command starts a tmux session that manages all the processes of the experiment. To query all the available hyperparameters, run:
```bash
python -um code.launcher.node.node -l.a .server -h
```
where `` is the algorithm to run (i.e. `fedavg|fednova|fedgma`). The datasets will be downloaded if they are not already present after the experiment starts.
The processes are managed by tmux. Use `tmux attach` to attach to the tmux session and observe the progress of the experiment. Experiment logs will also be outputted to `logs/`.
## Results
### Accuracies on CIFAR-10/100
|
|
|
|:--------------------------------------------:|:---------------------------------------------:|
| CIFAR10 | CIFAR100 |
### Accuracy -- Data Curve on CIFAR10
|
|
|
|
|:----------------------------------:|:-------------------------------------:|:----------------------------------------:|
| VGG9 | ResNet18 | InceptionNet3 |
## Citation
TBD