Skip to content

This is an implementation for paper "A Hybrid Approach to Privacy Preserving Federated Learning" (https://arxiv.org/pdf/1812.03224.pdf)

Notifications You must be signed in to change notification settings

lainisourgod/hybrid-approach-to-ppfl

Repository files navigation

PoC Hybrid Approach

Project structure

  • main.py -- script for MNIST experiment (either Linear or CNN model). Defines dataset and dataloaders for trainer
  • rnn_main.py -- script for RNN experiment
  • trainer.py -- Trainer class that rules training and encryption stuff
  • distro.py -- Party and Server classes that knows about model and about encryption and do it
  • distro_paillier/ -- sources of Threshold Paillier Homomorphic Encryption. this library is used. I've done minor changes to decrypt function for it to work correctly with float numbers.
  • config.py -- containes singleton config object used by all modules.

How to run

  1. Install system dependencies for crypto stuff: sudo apt install libgmp-dev libmpfr-dev libmpc-dev.
  2. Install python dependencies: pip install -r requirements.txt.
  3. Run MNIST experiment python main.py.
  4. Run RNN experiment python rnn_main.py.

About

This is an implementation for paper "A Hybrid Approach to Privacy Preserving Federated Learning" (https://arxiv.org/pdf/1812.03224.pdf)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages