Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: dennis-grinwald
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 241 KB
Statistics
  • Stars: 4
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Floco

Official repository for Floco (Federated Learning over Connected Modes), published at NeurIPS'24.

We offer implementations for two federated learning frameworks: - FL-Bench - Flower: Pull request under review

This repository is based on the FL-bench implementation and includes additional non-IID splits and utility functions used in the paper.

Installation

sh python -m venv venv . venv/bin/activate pip install --upgrade pip pip install -r requirements.txt

Datasets

We have benchmarked our method against multiple different non-IID splits. In order to generate the dataset splits as proposed in the paper, the following commands should be run beforehand.

CIFAR-10

Dirichlet(0.3)

py python generate_data.py -d cifar10 -a 0.3 -cn 100 --least_samples 600 --val_ratio 0.2 --test_ratio 0.0 --seed <seed>

Five-Fold

py python generate_data.py -d cifar10 -f 5 -cn 100 --least_samples 600 --val_ratio 0.2 --test_ratio 0.0 --seed <seed>

FEMNIST

Before running this script, the LEAF dataset has to be downloaded and preprocessed as described here. py python generate_data.py -d femnist

Reproducing the results

py python main.py [--config-name <CONFIG_NAME>] [method=<METHOD_NAME>] - --config-name: Name of .yaml config file (w/o the .yaml extension) in the config/ directory. - method: The algorithm's name, e.g., method=fedavg which should be identical to the .py file name in src/server..

Example:

py python main.py --config-name cifar10_dir method=floco

Parallel Training via Ray

This feature can vastly improve your training efficiency. At the same time, this feature is user-friendly and easy to use!!!

Activate (What You ONLY Need To Do)

```yaml

your_config.yaml

mode: parallel parallel: num_workers: 2 # any positive integer that larger than 1 ... ```

Monitor runs

This implementation supports tensorboard. 1. Run tensorboard --logdir=<your_log_dir> on terminal. 2. Go check localhost:6006 on your browser.

Bibtex

bibtex @inproceedings{grinwald2024floco, title={Federated Learning over Connected Modes}, author={Grinwald, Dennis and Wiesner, Philipp and Nakajima, Shinichi}, booktitle={The Thirty-eighth Annual Conference on Neural Information Processing Systems (NeurIPS'24)}, year={2024}, url={https://openreview.net/forum?id=JL2eMCfDW8} }

Owner

  • Login: dennis-grinwald
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
title: 'FL-bench: A federated learning benchmark for solving image classification tasks'
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Jiahao
    family-names: Tan
    email: karhoutam@qq.com
    affiliation: Shenzhen University
  - given-names: Xinpeng
    family-names: Wang
    affiliation: 'The Chinese University of Hong Kong, Shenzhen'
    email: 223015056@link.cuhk.edu.cn
repository-code: 'https://github.com/KarhouTam/FL-bench'
abstract: >-
  Benchmark of federated learning that aim solving image
  classification tasks.
keywords:
  - federated learning
license: GNU General Public License v3.0

GitHub Events

Total
  • Watch event: 5
  • Push event: 11
  • Create event: 2
Last Year
  • Watch event: 5
  • Push event: 11
  • Create event: 2

Dependencies

requirements.txt pypi
  • Pillow *
  • PyYAML *
  • cvxpy *
  • faiss-cpu *
  • hydra-core *
  • matplotlib *
  • numpy *
  • omegaconf *
  • pandas *
  • pynvml *
  • ray *
  • rich *
  • scikit-learn *
  • scipy *
  • tensorboard *
  • torch *
  • torchaudio *
  • torchmetrics *
  • torchvision *
  • tqdm *
  • visdom *