Skip to content

kaist-dmlab/FL-Sim

Repository files navigation

FL-Sim: Federated Learning Simulator

Installation

  1. Prerequisite Libraries
python3 -m pip install --user jupyterlab
python3 -m pip install --user tensorflow-gpu==1.14.0
python3 -m pip install --user networkx
python3 -m pip install --user sklearn
python3 -m pip install --user wurlitzer
  1. NS-3 Library for Network Simulation
unzip ns-3-allinone.zip
cd ns-3-allinone
./download.py
# When running 'build.py', make sure 'Python Bindings' item is enabled
./build.py --enable-examples --enable-tests -- --python=/usr/bin/python3.5
cd ns-3-dev
./waf shell
  1. Installation Test
python3 -c "import tensorflow as tf ; print(tf.__version__)"
python3 -c "import ns.core"
  1. Environment Variable
PYTHONPATH=$PYTHONPATH:[path to FL-Sim]
export PYTHONPATH

Development

~/.local/bin/jupyter lab --allow-root --ip=0.0.0.0 --no-browser

Execution

Please refer to fl_util.py for the list of possible parameters

python3 main.py --modelName='cnn-femnist' --dataName='femnist' --algName='cgd'
python3 main.py --modelName='cnn-femnist' --dataName='femnist' --algName='fedavg' \
--nodeType='t' --opaque1=5
python3 main.py --modelName='cnn-femnist' --dataName='femnist' --algName='hier-favg' \
--nodeType='t' --edgeType='t' --opaque1=1 --opaque2=5
python3 main.py --modelName='cnn-femnist' --dataName='femnist' --algName='fedavg-ic' \
--nodeType='t' --edgeType='t' --opaque1=1 --opaque2=5

Version List of Used Python Packages

python3 -m pip list
Package                       Version
----------------------------- ----------------------
imageio                       2.6.1
ipykernel                     5.1.2
ipython                       7.8.0
ipython-genutils              0.2.0
json5                         0.8.5
jsonschema                    3.0.2
jupyter-client                5.3.3
jupyter-core                  4.5.0
jupyterlab                    1.1.4
jupyterlab-server             1.0.6
Keras-Applications            1.0.7
Keras-Preprocessing           1.0.9
matplotlib                    3.0.3
networkx                      2.3
notebook                      6.0.1
numpy                         1.16.2
pickleshare                   0.7.5
pip                           19.0.3
python-apt                    1.1.0b1+ubuntu0.16.4.8
python-dateutil               2.8.0
python-debian                 0.1.27
python-systemd                231
scikit-image                  0.15.0
scikit-learn                  0.22.1
scipy                         1.4.1
sklearn                       0.0
tensorboard                   1.14.0
tensorflow-estimator          1.14.0
tensorflow-gpu                1.14.0
wurlitzer                     2.0.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published