Federated-Learning-and-Split-Learning-with-raspberry-pi
Federated-Learning-and-Split-Learning-with-raspberry-pi copied to clipboard
SRDS 2020: End-to-End Evaluation of Federated Learning and Split Learning for Internet of Things
Federated Learning and Split Learning with raspberry pie
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}}
Helpful Link
Description
This repository contains the implementations of various distributed machine learning models like Federated learning, split learning and ensemble learning
Requirements(Desktop)
- Python==3.6
- PyTorch==1.5.1
Requirements(Raspberry pie3)
- Python==3.7
- PyTorch==1.0.0
Repository summary
-
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
format -
split_learning
directory: source codes of split learning inipynb
and.py
format -
ensemble_learning
directory: source codes of ensemble learning inipynb
and.py
format
How to use
1. Run client on desktop
you need to use ~client.ipynb
file
2. Run client on raspberry pie
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.
Overall process
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
Project members
Gao Yansong, Kim Minki, Abuadbba Sharif, Kim Yeonjae, Thapa Chandra, Kim Kyuyeon, Camtepe Seyit A, Kim Hyoungshick, Nepal Surya