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.
To install FLSim, all that needs to be done is clone this repository to the desired directory.
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
Before using the repository, make sure to activate the fl-py37
environment with:
conda activate fl-py37
To start a simulation, run run.py
from the repository's root directory:
python run.py
--config=config.json
--log=INFO
--config
(-c
): path to the configuration file to be used.--log
(-l
): level of logging info to be written to console, defaults toINFO
.
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 (haowang@ece.utoronto.ca)