• Stars
    star
    190
  • Rank 203,739 (Top 5 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 5 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A simulation framework for Federated Learning written in PyTorch

FLSim

About

Welcome to FLSim, a PyTorch based federated learning simulation framework, created for experimental research in a paper accepted by IEEE INFOCOM 2020:

Hao Wang, Zakhary Kaplan, Di Niu, Baochun Li. "Optimizing Federated Learning on Non-IID Data with Reinforcement Learning," in the Proceedings of IEEE INFOCOM, Beijing, China, April 27-30, 2020.

Installation

To install FLSim, all that needs to be done is clone this repository to the desired directory.

Dependencies

FLSim uses Anaconda to manage Python and it's dependencies, listed in environment.yml. To install the fl-py37 Python environment, set up Anaconda (or Miniconda), then download the environment dependencies with:

conda env create -f environment.yml

Usage

Before using the repository, make sure to activate the fl-py37 environment with:

conda activate fl-py37

Simulation

To start a simulation, run run.py from the repository's root directory:

python run.py
  --config=config.json
  --log=INFO
run.py flags
  • --config (-c): path to the configuration file to be used.
  • --log (-l): level of logging info to be written to console, defaults to INFO.
config.json files

FLSim uses a JSON file to manage the configuration parameters for a federated learning simulation. Provided in the repository is a generic template and three preconfigured simulation files for the CIFAR-10, FashionMNIST, and MNIST datasets.

For a detailed list of configuration options, see the wiki page.

If you have any questions, please feel free to contact Hao Wang ([email protected])