Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Flower Baseline: FedAvg+MNIST #1538

Closed
20 tasks done
charlesbvll opened this issue Jan 6, 2023 · 0 comments · Fixed by #1497
Closed
20 tasks done

Add Flower Baseline: FedAvg+MNIST #1538

charlesbvll opened this issue Jan 6, 2023 · 0 comments · Fixed by #1497
Assignees
Labels

Comments

@charlesbvll
Copy link
Member

charlesbvll commented Jan 6, 2023

Paper

McMahan et al., 2016, Communication-Efficient Learning of Deep Networks from Decentralized Data, MNIST

Link

https://arxiv.org/abs/1602.05629

Maybe give motivations about why the paper should be implemented as a baseline.

This paper was the first to propose a federated approach for deep learning on decentralized data.

Is there something else you want to add?

No response

Implementation

To implement this baseline, it is recommended to do the following items in that order:

For first time contributors

Prepare - understand the scope

  • Read the paper linked above
  • Create the directory structure in Flower Baselines (just the __init__.py files and a README.md)
  • Before starting to write code, write down all of the specs of this experiment in a README (dataset, partitioning, model, number of clients, all hyperparameters, …)
  • Open a draft PR

Implement - make it work

  • Implement some form of dataset loading and partitioning in a separate dataset.py (doesn’t have to match the paper exactly)
  • Implement the model in PyTorch
  • Write a test that shows that the model has the number of parameters mentioned in the paper
  • Implement the federated learning setup outlined in the paper, maybe starting with fewer clients
  • Plot accuracy and loss
  • Run it and check if the model starts to converge

Align - make it converge

  • Implement the exact data partitioning outlined in the paper
  • Use the exact hyperparameters outlined in the paper
  • Make it converge to roughly the same accuracy that the paper states
  • Commit the final hyperparameters and plots
  • Mark the PR as ready
@charlesbvll charlesbvll self-assigned this Jan 6, 2023
@charlesbvll charlesbvll linked a pull request Jan 6, 2023 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant