https://github.com/anishacharya/federated-learning-in-pytorch
Handy PyTorch implementation of Federated Learning (for your painless research)
https://github.com/anishacharya/federated-learning-in-pytorch
Science Score: 10.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
○DOI references
-
✓Academic publication links
Links to: arxiv.org, ieee.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (7.4%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
Handy PyTorch implementation of Federated Learning (for your painless research)
Basic Info
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of vaseline555/Federated-Learning-in-PyTorch
Created over 2 years ago
· Last pushed over 2 years ago
https://github.com/anishacharya/Federated-Learning-in-PyTorch/blob/main/
# Federated Learning in PyTorch Implementations of various Federated Learning (FL) algorithms in PyTorch, especially for research purposes. ## Implementation Details ### Datasets * Supports all image classification datasets in `torchvision.datasets`. * Supports all text classification datasets in `torchtext.datasets`. * Supports all datasets in [LEAF benchmark](https://leaf.cmu.edu/) (*NO need to prepare raw data manually*) * Supports additional image classification datasets ([`TinyImageNet`](https://www.kaggle.com/c/tiny-imagenet), [`CINIC10`](https://datashare.ed.ac.uk/handle/10283/3192)). * Supports additional text classification datasets ([`BeerReviews`](https://snap.stanford.edu/data/web-BeerAdvocate.html)). * Supports tabular datasets ([`Heart`, `Adult`, `Cover`](https://archive.ics.uci.edu/ml/index.php)). * Supports temporal dataset ([`GLEAM`](http://www.skleinberg.org/data.html)) * __NOTE__: don't bother to search raw files of datasets; the dataset can automatically be downloaded to the designated path by just passing its name! ### Statistical Heterogeneity Simulations * `IID` (i.e., statistical homogeneity) * `Unbalanced` (i.e., sample counts heterogeneity) * `Pathological Non-IID` ([McMahan et al., 2016](https://arxiv.org/abs/1602.05629)) * `Dirichlet distribution-based Non-IID` ([Hsu et al., 2019](https://arxiv.org/abs/1909.06335)) * `Pre-defined` (for datasets having natural semantic separation, including `LEAF` benchmark ([Caldas et al., 2018](https://arxiv.org/abs/1812.01097))) ### Models * `LogReg` (logistic regression), `StackedTransformer` (TransformerEncoder-based classifier) * `TwoNN`, `TwoCNN`, `SimpleCNN` ([McMahan et al., 2016](https://arxiv.org/abs/1602.05629)) * `FEMNISTCNN`, `Sent140LSTM` ([Caldas et al., 2018](https://arxiv.org/abs/1812.01097))) * `LeNet` ([LeCun et al., 1998](https://ieeexplore.ieee.org/document/726791/)), `MobileNet` ([Howard et al., 2019](https://arxiv.org/abs/1905.02244)), `SqueezeNet` ([Iandola et al., 2016](https://arxiv.org/abs/1602.07360)), `VGG` ([Simonyan et al., 2014](https://arxiv.org/abs/1409.1556)), `ResNet` ([He et al., 2015](https://arxiv.org/abs/1512.03385)) * `MobileNeXt` ([Daquan et al., 2020](https://arxiv.org/abs/2007.02269)), `SqueezeNeXt` ([Gholami et al., 2016](https://arxiv.org/abs/1803.10615)), `MobileViT` ([Mehta et al., 2021](https://arxiv.org/abs/2110.02178)) * `DistilBERT` ([Sanh et al., 2019](https://arxiv.org/abs/1910.01108)), `SqueezeBERT` ([Iandola et al., 2020](https://arxiv.org/abs/2006.11316)), `MobileBERT` ([Sun et al., 2020](https://arxiv.org/abs/2004.02984)) * `M5` ([Dai et al., 2016](https://arxiv.org/abs/1610.00087)) ### Algorithms * `FedAvg` and `FedSGD` (McMahan et al., 2016) Communication-Efficient Learning of Deep Networks from Decentralized Data * `FedAvgM` (Hsu et al., 2019) Measuring the Effects of Non-Identical Data Distribution for Federated Visual Classification * `FedProx` (Li et al., 2018) Federated Optimization in Heterogeneous Networks * `FedOpt` (`FedAdam`, `FedYogi`, `FedAdaGrad`) (Reddi et al., 2020) Adaptive Federated Optimization ### Evaluation schemes * `local`: evaluate FL algorithm using holdout sets of (some/all) clients NOT participating in the current round. (i.e., evaluation of personalized federated learning setting) * `global`: evaluate FL algorithm using global holdout set located at the server. (*ONLY available if the raw dataset supports pre-defined validation/test set*). * `both`: evaluate FL algorithm using both `local` and `global` schemes. ### Metrics * Top-1 Accuracy, Top-5 Accuracy, Precision, Recall, F1 * Area under ROC, Area under PRC, Youden's J * Seq2Seq Accuracy * MSE, RMSE, MAE, MAPE * $R^2$, $D^2$ ## Requirements * See `requirements.txt`. (I recommend building an independent environment for this project, using e.g., `Docker` or `conda`) * When you install `torchtext`, please check the version compatibility with `torch`. (See [official repository](https://github.com/pytorch/text#installation)) * Plus, please install `torch`-related packages using one command provided by the official guide (See [official installation guide](https://pytorch.org/get-started/locally/)); e.g., `conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 torchtext==0.13.0 cudatoolkit=11.6 -c pytorch -c conda-forge` ## Configurations * See `python3 main.py -h`. ## Example Commands * See shell files prepared in `commands` directory. ## TODO - [ ] Support another model, especially lightweight ones for cross-device FL setting. (e.g., [`EdgeNeXt`](https://github.com/mmaaz60/EdgeNeXt)) - [ ] Support another structured dataset including temporal and tabular data, along with datasets suitable for cross-silo FL setting. (e.g., [`MedMNIST`](https://github.com/MedMNIST/MedMNIST)) - [ ] Add other popular FL algorithms including personalized FL algorithms (e.g., [`SuPerFed`](https://arxiv.org/abs/2109.07628)). - [ ] Attach benchmark results of sample commands. ## Contact Should you have any feedback, please create a thread in __issue__ tab. Thank you :)
Owner
- Name: Anish Acharya
- Login: anishacharya
- Kind: user
- Location: Austin, Tx
- Company: University of Texas at Austin
- Website: http://anishacharya.github.io
- Repositories: 8
- Profile: https://github.com/anishacharya