Skip to content

shuhao02/flsim

Repository files navigation

FLSim

DQN

dqn的q网络还需要再优化 目前的dqn是只选择一个设备(同时选取多个设备会导致内存出问题)

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 -n fl-py37 -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])

@inproceedings{wang2020optimizing,
  title={Optimizing Federated Learning on Non-IID Data with Reinforcement Learning},
  author={Wang, Hao and Kaplan, Zakhary and Niu, Di and Li, Baochun},
  booktitle={IEEE INFOCOM 2020-IEEE Conference on Computer Communications},
  pages={1698--1707},
  year={2020},
  organization={IEEE}
}