Skip to content

Hierarchical Federated Learning implementation is NodeJS. Created to aide a research program at Colorado School of Mines

License

Notifications You must be signed in to change notification settings

nerd8622/HFL-NodeJS

Repository files navigation

HFL-NodeJS

Hierarchical Federated Learning implementation is NodeJS. Created by David Canaday to aide an undergraduate research program at Colorado School of Mines.

Usage Instructions (development)

  1. Ensure you are running NodeJS 18.X.X or above!
  2. Run npm i
  3. Run "start_central.bat" and "start_client_server.bat"
  4. Run "start_edge.bat" as many times as needed and specify a port each time.
  5. Run "start_client.bat" and specify port of edge server to connect to.
  6. Run "start_sim.bat"

Usage Instruction (testing)

  1. Run npm i
  2. Run node data.js in the central folder
  3. Move and rename the bin files and place them in test_client
  4. Follow steps 2-3 from previous instructions
  5. Run the expo app in client
  6. Run "start_sim.bat"

Progress

This implementation is designed to be a demo to run on the local machine, but the code is applicable to a more realistic situation where the network is distributed across many devices. The connectivity is nearly fully implemented. The main features that still need to be added are: robustness and error handling, sending model back upstream for learning iterations, and better train data dissemenation to clients (current method doesn't work well with larger batches).

About

Hierarchical Federated Learning implementation is NodeJS. Created to aide a research program at Colorado School of Mines

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published