GithubHelp home page GithubHelp logo

realrui / active-client-selection-for-communication-efficient-federated-learning Goto Github PK

View Code? Open in Web Editor NEW

This project forked from euphoria0-0/active-client-selection-for-communication-efficient-federated-learning

0.0 0.0 0.0 35 KB

Active Client Selection for Federated Learning

License: MIT License

Python 100.00%

active-client-selection-for-communication-efficient-federated-learning's Introduction

Active Client Selection for Communication-efficient Federated Learning

Active Client Selection algorithms of Federated Learning implementations by PyTorch in my Thesis.

Requirements

torch=1.8.0
torchvision
numpy
scipy
tqdm
h5py

Client Selection methods

python main.py --method {client selection method you want}
  1. Random: Random Selection
  2. AFL: Active Federated Learning [Jack Goetz et al., 2019]
  3. Pow-d: Power-of-d-Choice [Yae Jee Cho et al., 2022]
  4. Cluster1: Clustered Sampling 1 [Yann Fraboni et al., 2021]
  5. Cluster2: Clustered Sampling 2 [Yann Fraboni et al., 2021]
  6. DivFL: Diverse Client Selection for FL [Ravikumar Balakrishnan et al., 2022]

Benchmark Datasets

  1. FederatedEMNIST (default)

    Download from this [link] and place them in your data directory data_dir.

    python src/main.py --dataset FederatedEMNIST --model CNN -A 10 -K 3400 --lr_local 0.1 -B 20 -R 2000 
  2. CelebA

    Download from the original CelebA homepage [link].

    python src/main.py --dataset CelebA --model CNN -A 10 -K 9343 --lr_local 0.005 -B 5 -R 100
  3. FederatedCIFAR100

    Download from this [link].

     python src/main.py --dataset FedCIFAR100 --model ResNet -A 10 -K 500 --lr_local 0.1 -B 20 -R 4000 
  4. FederatedCIFAR10 (Partitioned by Dirichlet distribution, followed by Clustered Sampling)

    Don't need to download any dataset.

     python src/main.py --dataset PartitionedCIFAR10 --model CNN -A 10 -K 100 --lr_local 0.1 -B 50 -R 1000 
  5. Reddit

     python src/main.py --dataset Reddit --model BLSTM -A 200 -K 7527 --maxlen 400 \
         --alpha1 0.75 --alpha2 0.01 --alpha3 0.1 \
         --lr_local 0.01 --lr_global 0.001 -E 2 -B 128 -R 100
    • TODO: reproducible performance

References

active-client-selection-for-communication-efficient-federated-learning's People

Contributors

euphoria0-0 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.