Skip to content

A scheme for privacy-preserving learning on Tiny Devices.

Notifications You must be signed in to change notification settings

Haoyu-R/TinyFederatedLearning

 
 

Repository files navigation

TinyFederatedLearning

TinyML has rose to popularity in an era where data is everywhere. However, the data that is in most demand is subject to strict privacy and security guarantees. In addition, the deployment of TinyML hardware in the real world has significant memory and communication constraints that traditional ML fails to address. In light of these challenges, we persent TinyFedTL, the first implementation of federated transfer learning on a resource- constrained microcontroller.

Both an Ardunio and accompanied C++ implementation (without standard library so it will run on-device!)

File Structure and Important Files

  • dl
  • source > arduino_training_final_v3: the .ino file has the implementation of our FL code for the Arduino IDE to compile
    • python_final_script.py acts as the "central server" for the arduino
  • source > simulation:
    • NeuralNetwork.cpp has our FC implementation and the FL implementation, simulation.cc is the file with the code necessary to run our simulations.
    • simulation-xxx are the executables that can be run with ./ for each of our experiments, and the .txt files are the output from terminal when running the experiments
    • fl_simulation_analysis generates the .csv from the .txt
    • graphing.ipynb has the information to graph our figures from the paper from the .csv files
  • tensorflow (no changes)
  • third_party (no changes)

About

A scheme for privacy-preserving learning on Tiny Devices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 78.5%
  • Jupyter Notebook 12.5%
  • C 8.7%
  • Python 0.3%