This is for releasing the source code of the SRDS 2020 paper "End-to-End Evaluation of Federated Learning and Split Learning for Internet of Things".
If you find it is useful and used for publication. Please kindly cite our work as:
@inproceedings{gao2020end,
title={End-to-End Evaluation of Federated Learning and Split Learning for Internet of Things},
author={Gao, Yansong and Kim, Minki and Abuadbba, Sharif and Kim, Yeonjae and Thapa, Chandra and Kim, Kyuyeon and Camtepe, Seyit A and Kim, Hyoungshick and Nepal, Surya},
booktitle={The 39th International Symposium on Reliable Distributed Systems (SRDS)},
year={2020}}
This repository contains the implementations of various distributed machine learning models like Federated learning, split learning and ensemble learning
- Python==3.6
- PyTorch==1.5.1
- Python==3.7
- PyTorch==1.0.0
models
directory: has pre-processed training/testing data of MIT arrhythmia ECG database inhdf5
format. If you want, you can upload another preprocessed train and test data here.federated_learning
directory: source codes of federated learning inipynb
and.py
formatsplit_learning
directory: source codes of split learning inipynb
and.py
formatensemble_learning
directory: source codes of ensemble learning inipynb
and.py
format
you need to use ~client.ipynb
file
you need to use ~client_rasp.ipynb
or ~client_rasp.py
file
If you run these files, you can see the temperature, memory usage of raspberry pie.
set hyperparameters
- set variable
users
, in server and client file - set variable
rounds
,local_epoch
orepochs
of training
Running code
- Run the server code first
- After run server, run the clients
input information
- if you run the server, you can see the printed ip address of server
- when you run the client you need the enter order of client and ip address
- if there is no problem, training will be started
Gao Yansong, Kim Minki, Abuadbba Sharif, Kim Yeonjae, Thapa Chandra, Kim Kyuyeon, Camtepe Seyit A, Kim Hyoungshick, Nepal Surya